私はこのクエリを使用しています:
SELECT SENSOR_ID, (BOX_COUNT * 6) AS BOX_COUNT, `TIME` AS `TIMESTAMP`
FROM lu_sensor_log INNER JOIN lu_sensors S
ON S.MACHINE_ID=1 AND S.ID=SENSOR_ID
WHERE `TIME` >= '2013-09-04 15:30:00' AND `TIME` <= ' 2013-09-04 17:00:00'
ORDER BY `TIME` ASC
これは非常に単純なクエリであり、複雑なことは何もありません。以前は、データベース テーブルに と のペア インデックスがSENSOR_ID
ありTIME
ました。このクエリが完了するまでに (平均で) 4 秒かかります。SENSOR_ID
それ以来、ペアのインデックスを削除し、列に個々のインデックスを設定しましたTIME
。これで、クエリはほぼ瞬時に実行されます。
違いについて Google で簡単に検索してみましたが、ある方法が他の方法よりも高速である理由の具体的な証拠を見つけることができないようです。
誰でも私のためにこれを片付けてもらえますか? 単一列インデックスが同じ列のペア インデックスよりもはるかに高速なのはなぜですか? (もちろん、この場合はより高速です)。
どうもありがとう。