mysql:3815
From: "william" <"william" <william@xxxxxxxxxx>>
Date: Mon, 25 Jun 2001 16:13:57 +0900
Subject: [mysql 03815] or 条件で、 Index が使われない
吉です。 create table T1 ( a char(10) not null primary key, b char(10), index(b) ); とします。1万件のデータを入れました。 select * from T1 where a like 'A123%' or b like 'B123%' をexplainで見ると、Type=ALL、Key=NULL、rows=10000 で、 インデックスは使っていません。 マニュアルのHow MySQL Uses Indexesに、 > These WHERE clauses do NOT use indexes: > ... WHERE index_part2=1 AND index_part3=2 > ... WHERE index=1 OR A=10 > ... WHERE index_part1=1 OR index_part2=10 と書いてあります。マニュアル通りです。 しかし、T1の件数が多ければ、とっても遅くなります。 どうしたら、上記の検索が早くできるのでしょうか。 # a like 'A123%' は17件、 # b like 'B123%' は11件、かなり絞られる ----- william@xxxxxxxxxx
-> 3815 2001-06-25 16:13 ["william" <william@x] or 条件で、 Index が使われない 3816 2001-06-25 17:58 ┣[Akihiko Shinohara <s] 3817 2001-06-25 18:39 ┃┗["william" <william@x] 3820 2001-06-25 19:08 ┃ ┗[Akihiko Shinohara <s] 3821 2001-06-25 19:31 ┃ ┗["MINOHATA Norio" <mi] 3828 2001-06-26 10:31 ┃ ┗["william" <william@x] 3833 2001-06-27 10:33 ┃ ┗["MINOHATA Norio" <mi] 3834 2001-06-27 11:46 ┃ ┣["西田 玄" <nishida@x] MyODBC で UPDATE ができない 3835 2001-06-27 12:53 ┃ ┃┣[Kengo Jinno <kengo@x] 3837 2001-06-27 13:59 ┃ ┃┃┗["西田 玄" <nishida@x] 3839 2001-06-27 16:33 ┃ ┃┃ ┗["william" <william@x] 3840 2001-06-27 16:58 ┃ ┃┃ ┗["西田 玄" <nishida@x] 3863 2001-06-29 12:01 ┃ ┃┃ ┗["西田 玄" <nishida@x] 3836 2001-06-27 13:22 ┃ ┃┗[madara <madara@xxxxx] 3838 2001-06-27 16:20 ┃ ┗[Hiroshi Takiguchi <t] 3818 2001-06-25 18:41 ┣[Seiji Tateyama <tate] 3819 2001-06-25 19:00 ┃┣["william" <william@x] 3825 2001-06-26 06:47 ┃┗[とみたまさひろ <tomm] 3826 2001-06-26 09:36 ┃ ┗["MINOHATA Norio" <mi] 3822 2001-06-25 20:36 ┗[Hiroshi Takiguchi <t]