mysql:4155
From: "william" <"william" <william@xxxxxxxxxx>>
Date: Tue, 7 Aug 2001 16:49:00 +0900
Subject: [mysql 04155] 条件の値によって Index が使われない
吉です。 MySQLで以下のSQLをexplainして、理解できないことがあります。 ケース1とケース2の違いはWHERE文に条件の値だけが違います。 # sampletime は datetime型で、インデックスあり。 ケース1:189件ヒット explain select name,printedpage from PRTINF where sampletime>='2001-08-07 16:00:01'; +--------+-------+---------------+------------+------+------------+ | table | type | possible_keys | key | rows | Extra | +--------+-------+---------------+------------+------+------------+ | PRTINF | range | sampletime | sampletime | 907 | where used | +--------+-------+---------------+------------+------+------------+ # これは予想通り、インデックスを使ってくれる ケース2:753件ヒット explain select name,printedpage from PRTINF where sampletime>='2001-08-07 00:00:01'; +--------+------+---------------+------+------+------------+ | table | type | possible_keys | key | rows | Extra | +--------+------+---------------+------+------+------------+ | PRTINF | ALL | sampletime | NULL | 5363 | where used | +--------+------+---------------+------+------+------------+ # これは理解できない。全件の1/5なのに、なぜ総なめになるでしょう # 使わせる方法はありますか。 ----- william@xxxxxxxxxx
-> 4155 2001-08-07 16:49 ["william" <william@x] 条件の値によって Index が使われない 4158 2001-08-08 23:19 ┗[とみたまさひろ <tomm] 4159 2001-08-09 13:23 ┗["william" <william@x]