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]