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

mysql:499

From: Tamon Nomura <Tamon Nomura <tamon@xxxxxxxxxx>>
Date: Wed, 06 Jan 1999 21:16:46 +0900
Subject: [mysql 499] Re: where 節での最適化 (Re: あけましておめでとうございます。 )


tamonです。

> 「MySQL normally uses the index that finds least number of rows.」と
> なってるので、「左から順番に」というわけではないと思います。

えと、これは言い回しが分かり難かったとおもいますが

インデックスとしてcolumn1とcolumn2を含んだindexを作った場合、
selectのwhereで
where column1=1
や
where column1=1 and column2=1
というSQLの場合は、インデックスが使用され
where column2=1
ではインデックスが使用されない。

ということでした。(マニュアルより)

単純に考えると
where column2=1 and column1=1
はインデックスが使用されませんが、民斗さんの指摘どうりオプティマイザが
where column1=1 and column2=1
に変換する為問題ないってことですね。早とちりでした。

どっちにしても、where column1=1だけでもindexが使用されるので、データ
検索の使用頻度を考えてindexを作成すれば、indexも少なくなるので
ディスク容量やinsertでのindex書換えのオーバーヘッドも減るんじゃないかと。


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

       482 1999-01-01 23:22 [<endo@xxxxxxxxxx>   ] あけましておめでとうございます。        
       484 1999-01-02 01:51 ┣[<tommy@xxxxxxxxxx>  ]                                       
       485 1999-01-02 07:49 ┃┣[<endo@xxxxxxxxxx>   ]                                     
       494 1999-01-06 18:13 ┃┗[<yandy@xxxxxxxxxx>  ]                                     
       489 1999-01-04 10:35 ┗[Tamon Nomura <tamon@]                                       
       490 1999-01-04 11:31  ┗[民斗 <tommy@xxxxxxxx] where 節での最適化  (Re:  あけましておめでとうございます。 )
->     499 1999-01-06 21:16   ┗[Tamon Nomura <tamon@]                                   
       500 1999-01-07 09:30    ┗[<endo@xxxxxxxxxx>   ]                                 
       501 1999-01-07 09:44     ┗[Hideaki Nakayama <na]                               
       503 1999-01-07 09:56      ┗[<endo@xxxxxxxxxx>   ]                             
       505 1999-01-07 10:03       ┗[Hideaki Nakayama <na]