mysql:3702
From: Tybalt of Capulet <Tybalt of Capulet <ice-man@xxxxxxxxxx>>
Date: Tue, 29 May 2001 16:21:38 +0900
Subject: [mysql 03702] インデックスの作成について
神崎です。 現在テーブルのインデックスの作成について悩んでおります。 tbl_1という名前で下記のようなテーブルをcreateするとします。 create table tbl_1 ( id INT(9) NOT NULL, data1 CHAR(2) NOT NULL, data2 INT(3) NOT NULL, data3 CHAR(2) NOT NULL, data4 CHAR(1) NOT NULL, data5 CHAR(1) NOT NULL, primary key (id), index tbl_1_idx1 (data1,data2,data3,data4,data5), index tbl_1_idx2 (data2,data3,data4,data5), index tbl_1_idx3 (data3,data4,data5), index tbl_1_idx4 (data4,data5), index tbl_1_idx5 (data5) ) data1〜data5は検索に使われる項目です。 これらの項目は必ず全て検索に使用されるわけではなく、 任意の組み合わせで検索されます。 この場合「tbl_1_idx1」のインデックスは (1)data1に対するインデックス (2)data1とdata2に対するインデックス (3)data1とdata2とdata3に対するインデックス (4)data1とdata2とdata3とdata4に対するインデックス (5)data1とdata2とdata3とdata4とdata5に対するインデックス となると「MySQL徹底入門」のP57に書いてありました。 ということは例えば、data2とdata3で検索された時とかにはこのインデックスは 使用されないということなのでしょうか? そうなると上記のcreate文の様に最低5個のインデックスをつけなければ ならないことになります。 更に上記の5つだけでは到底全てのパターンを網羅できません。 全てのパターンを網羅するためにはこのパターン分だけのインデックスが 必要なのでしょうか? しかしMySQLのバジョンが3_22のため1テーブルにつきインデックスの最大個数が 16までとも記述されておりました。 わかりにく説明とは思いますが、おわかりの方いらっしゃいましたら 是非ご教授お願いいたします。 _______________________________R_y_u_____ 神崎 隆 Mail:ice-man@xxxxxxxxxx _____K_a_n_z_a_k_i________________________
-> 3702 2001-05-29 16:21 [Tybalt of Capulet <i] インデックスの作成について 3703 2001-05-29 18:08 ┣[madara <madara@xxxxx] 3704 2001-05-29 18:35 ┗[Akihiko Shinohara <s] 3711 2001-05-30 12:35 ┗[Tybalt of Capulet <i]