配对索引和单列索引之间的区别?

时间:2013-09-05 11:56:04

标签: mysql sql

我正在使用此查询:

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_IDTIME的配对索引。此查询将花费(平均)4秒完成。我已经删除了配对索引并在列SENSOR_IDTIME上设置了单独的索引 - 现在查询几乎是即时的。

我尝试过快速谷歌搜索差异,但似乎无法找到任何具体的证据,说明为什么一种方法会比另一种更快。

有人可以帮我清楚吗?为什么单列索引比同一列上的配对索引快很多? (当然,在这种情况下更快)。

非常感谢。

1 个答案:

答案 0 :(得分:1)

您没有使用配对索引。您一次根据其中一列限制数据。不是一次两个。

实际上,由于您的TIME子句,您只是使用WHERE索引。如果WHERE子句另外限制SENSOR_ID,则配对索引可以加快查询速度。

要查看实际使用的索引,您应该查看查询的执行计划。

相关问题