[前][次][番号順一覧][スレッド一覧]

mysql:3822

From: Hiroshi Takiguchi <Hiroshi Takiguchi <takiguci@xxxxxxxxxx>>
Date: Mon, 25 Jun 2001 20:36:40 +0900
Subject: [mysql 03822] Re: or 条件で、 Index が使われない

滝口です。

On Mon, 25 Jun 2001 16:13:57 +0900
"william" <william@xxxxxxxxxx> wrote:

> 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 で、
> インデックスは使っていません。
:
:
> しかし、T1の件数が多ければ、とっても遅くなります。
> どうしたら、上記の検索が早くできるのでしょうか。
> 
> # a like 'A123%' は17件、
> # b like 'B123%' は11件、かなり絞られる

create temporary table hoge (primary key(a))
select * from T1 where a like 'A123%';
insert ignore into hoge select * from T1 where b like 'B123%';
select count(*) from hoge;

こんなんで、どうでしょうか。かなり速いはずです。
うちのとあるデータ(270万件)では、
136.3s -> 0.7s(88ms+595ms+2ms)と劇的に速くなります。

++++++++++++++++++++++++++++++
 takiguci@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]