タグ

tipsとSQLに関するat_homeのブックマーク (6)

  • MySQLの複合INDEX - 憂鬱なプログラマの形而上学

    MySQLMySQLの複合インデックスについて。MySQLを使いこなしている人には常識の範疇にはいる知識だと思うのですが、かつての私のように、知らないとドツボにはまるので、ここにまとめておきます。タイトルでどういう内容か、もしかしたら大体、想像がつくかなと思うのですが、MySQLは1つのクエリーで1つのテーブルに対し、1つのインデックスしか機能しないということです。ようするに、あるテーブルに対して、普通に大量のインデックスを張ってもあまり意味がありません。そこで、今回は、最適な複合インデックスはどのようにしてはることができるか考えていこうじゃないか、という趣旨で書いていきたいと思います。まずは分析。テスト環境でインデックスが使われていないSQLを集めるまずは、/etc/my.cnfのパラメータを以下のように設定し、インデックスが使われていないSQLをスロークエリーに吐き出します。 slow

  • 結構使えるMySQLのTrigger機能!

    ■カテゴリテーブル CREATE TABLE category_t ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(255) default NULL, `product_count` int(11) default 0, PRIMARY KEY  (`id`) ) DEFAULT CHARSET=utf8; ■商品テーブル CREATE TABLE product_t ( `id` int(10) unsigned NOT NULL auto_increment, `category_id` int(11) default NULL, `name` varchar(255) default NULL, PRIMARY KEY  (`id`) ) DEFAULT CHARSET=utf8; カテゴリテーブルには

    結構使えるMySQLのTrigger機能!
  • 誕生日から年齢を算出する - オラクル・Oracle SQL 関数リファレンス

    年齢を計算する(暦年齢) 満年齢 一般的な年齢 生まれた年は 0歳 として翌年の誕生日に年齢 +1 する。 民法など特定の状況で使用される年齢 生まれた年は 0歳 として翌年の誕生日の前日に年齢 +1 する。 入学資格や一部の法令には月末における年齢を条件にしていることが多い。1日生まれの人は前の月末には 年齢が加算されていることになっているので 1日生まれの人は行政サービス(就学、年金や所得税など)を受けるときには要注意。(「但し書き」もされているらしい) 数え年 生まれた年は 1歳 として翌年からは 1月1日を誕生日とする。 つまり 数え年 = 計算したい年 - 誕生した年 + 1 。 儀礼などには数え年が使われているようである。 七五三や還暦(数え年で 61歳)や喜寿(数え年で 77歳)、厄除け、厄払いなどに使われる。 YEARS_OF_AGE ファンクション (誕生日から年齢を算出

  • EXTRACT - オラクル・Oracle SQL 関数リファレンス

    EXTRACT 関数の内容 指定した日時フィールドの値を取り出す。 DATE 値からは YEAR、MONTH および DAY のみを抽出でき、TIMESTAMP 値からは SECOND まで取得が可能。(TIMEZONE_HOURとTIMEZONE_MINUTE は TIMESTAMP WITH TIME ZONE 値からのみ) DATE 型から HOUR を抽出すると ORA-30076: 抽出ソースの抽出フィールドが無効です が発生する。 ANSI では DATE 値は日にちまでと定義されているために発生する現象である。(ANSI-SQL92 のデータタイプは DATE, TIME, TIMESTAMP) EXTRACT 使用例 SQL> select dt, EXTRACT(YEAR FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(DAY FROM

  • CASE 式 と CASE 文の違い - オラクル・Oracleをマスターするための基本と仕組み

    CASE 式 と CASE 文 の違い SQL は CASE 式 のみで CASE 文 は記述できない。 CASE 文は PL/SQL で記述するステートメントである。 CASE 式 : 条件毎のセミコロンがなく、CASE の最後は END で終了するファンクションのようなものである。当然であるが式なので評価や代入文にも使用できる。 CASE 文 : 複数のステートメントから構成される。構文の違いは以下参照 単純 CASE (simple case) の書き方の違い CASE 式 - CASE で始まり END で終了する。 expr と comparison_expr を比較し真偽判定をする。 CASE expr -- CASE 式 WHEN comparison_expr1 THEN ret_expr1    -- 式や値を記述する WHEN comparison_expr2 THEN

  • オープンソース情報データベースシステム(OSS iPedia) のコンテンツについて

    オープンソース情報データベースシステム(OSS iPedia) は、2013年5月17日(金) をもちまして運用を終了いたしました。 長い間ご利用をいただきましてありがとうございました。 OSS iPediaで提供しておりました、IPAフォント、文字情報基盤、その他報告書等については、下記リンクをご参照ください。 皆様には大変ご不便をおかけいたしますが、何卒ご理解の程をよろしくお願い申し上げます。

  • 1