MySQLのDATETIME型へインデックスをつける場合注意が必要。 例えばこんなSQLではインデックスが使用されない。 SELECT * FROM table WHERE datetime LIKE '2009-05-17%' 検索結果は2009-05-17分全てが抽出されるが、フルスキャンがかかる。 この場合、以下のようなSQLが良い。 SELECT * FROM table WHERE date_time BETWEEN '2009-05-17' AND '2009-05-17' + INTERVAL 1 DAY 実行時間計測の例 行数:13,776行 データ:2,935KB インデックス:datetime SELECT SUM( col ) FROM table WHERE datetime LIKE '2009-05-17%' フルスキャン 実行時間:0.0235 秒 SELEC
![MySQL DATETIME型へのINDEX注意点 | perlとMysqlでCGI & サーバ管理 漏れ的メモ](https://cdn-ak-scissors.b.st-hatena.com/image/square/56e095c86f1cad74b67bdffe4a9a2c6140490d2c/height=288;version=1;width=512/https%3A%2F%2Fperl.no-tubo.net%2Fwp-content%2Fuploads%2F2009%2F05%2Fmysql-890x500.jpg)