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

mysql:3826

From: "MINOHATA Norio" <"MINOHATA Norio" <minohata@xxxxxxxxxx>>
Date: Tue, 26 Jun 2001 09:36:14 +0900
Subject: [mysql 03826] Re: or 条件で、 Index が使われない

> 以下の WHERE 節はインデックスを使用します:
> ... WHERE index_part1=1 AND index_part2=2 AND other_column=3
> ... WHERE index=1 OR A=10 AND index=2      /* index = 1 OR index = 2 */
> ... WHERE index_part1='hello' AND index_part_3=5
>           /* optimized like "index_part1='hello'" */
> ... WHERE index1=1 and index2=2 or index1=3 and index3=3;
>           /* Can use index on index1 but not on index2 or index 3 */
>
> の2番目に該当するんではないかと。
>
> だから、実はインデックスが使用されないのはバグなんじゃないかと、
> 密かに疑ってたりするんですが… (^^;

マニュアルの13.4節の

  WHERE 節内の全ての AND にかからないインデックスは、
  全くクエリの最適化に使用されません。

という記述をわかりやすく言いかえると、
条件A or 条件B or 条件C .... とORが続くときに、
条件A,B,Cの全てで *同じインデックス* を使用できる場合にのみ
そのインデックスが使用されるということになりますので、
残念ながらバグではないと思われます。

上記2番目の場合は、
 index=1 OR index=2 で index が使用されますが、
元発言の方の場合は、
 indexA=1 OR indexB=2 なので どちらのインデックスも使用されない。

--
箕畑典男
http://www.onmap.co.jp/
mailto:minohata@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]