mysql:2740
From: Yoshihiko Kobayashi <Yoshihiko Kobayashi <kobayashi@xxxxxxxxxx>>
Date: Tue, 28 Nov 2000 12:23:28 +0900
Subject: [mysql 02740] Re: インデックスの効果について
Coburnと言います。投稿は・・・初めてになります(^^; 参加させて頂きながらもいつもROMばかりで(苦笑) お世話になります。 On Sun, 26 Nov 2000 14:07:01 +0900 "Hiroshi Koishi" <peaceful@xxxxxxxxxx> wrote: > テーブル作成時に検索用インデックスを付けると 検索に対して、 > かなりの高速化が計れるのは分かるのですが、具体的に どういう > ケースで使用するのが もっとも効果的なのでしょうか? > また、項目内のデータに同一の情報が多く存在する場合と 全く > といって良い程、同一の情報が存在しない場合とでは 検索速度? > は変わってくるものなのでしょうか? > (データの長さは同一だと仮定して) MySQLの場合は私自身もオプティマイザとかの性質を理解している訳ではな いので、あくまで一般的な話で言いますと、たとえば以下のようなカラムのある テーブルがあるとします。 取引先コード|取引先名|取引先住所|取引先電話番号 もしインデックスが無いと参照するときには毎回レコード単位で取得します。 (キャッシュ領域等の設定はこの例では無視します) しかし、このテーブルの取引先コードにインデックスが張られていた場合は インデックスの行単位で取得しますので実読み込み量を抑えることができますし、 速度的にも断然速くはなるでしょう。 まぁほんとに一例に過ぎないですが、他にも利点はいくつかありますので、 この辺りはリレーショナルデータベース関連の基本について執筆されている書籍 を参考にされたら良いと思います。 私はRDB周りを始める時に下記書籍にかなりお世話になりました。ご参考まで に。 鈴木昭男著 リレーショナルDBMS Q&A (ソフト・リサーチ・センター) > みなさんは、どういう項目に対してインデックスを付けられています > か?。検索する頻度に関係なく 検索する可能性のある全ての項目 > に対してインデックスを付けられているのでしょうか? あとインデックスが作成されたテーブルに対して更新が発生した場合にはインデッ クスも更新されますので、更新メインのテーブルにはあまりインデックスを作成 しない方が良い、と言う考えもあります。受注テーブルとか発注テーブルのよう な日々更新が発生する類のテーブルにはあまりインデックスを張らないケースも 考えられます。もしこれらのテーブルに頻繁にアクセスする場合は参照用テーブ ルを作成してそちらにインデックスを張る、といった方法も出てきます。 とまぁ、あくまで一般論ですので、このあたりはMySQLの仕様をじっくり調 べてみたいとこではありますが(^^; > 長らく ひいてた風邪から ようやく 復活^^。 小生は先日何度目かの風邪を・・コホコホ(苦笑) 冷えてきましたので用心が実用ですね。 でわ。 -------------------kobayashi@xxxxxxxxxx ida Corporation 301 Miki Blidg., 3-14-9 Nishitemma, Kita-ku Osaka, Japan 530-0047 Yoshihiko Kobayashi----------------------
2736 2000-11-26 14:07 ["Hiroshi Koishi" <pe] インデックスの効果について 2739 2000-11-27 19:00 ┣[inano <inano@xxxxxxx] -> 2740 2000-11-28 12:23 ┣[Yoshihiko Kobayashi ] 2766 2000-11-29 22:33 ┗[Satoshi Koiwa <koiwa] 2768 2000-11-30 00:43 ┗[とみたまさひろ <tomm] 2771 2000-11-30 09:34 ┣[Satoshi Tatsuoka <sa] 2772 2000-11-30 10:06 ┣["william" <william@x] 2775 2000-12-01 12:38 ┣[Satoshi Koiwa <koiwa] 2776 2000-12-01 13:50 ┗[Satoshi Koiwa <koiwa]