MySQl,为什么要使用完全错误的索引?

时间:2011-03-09 10:29:57

标签: mysql sql query-optimization

我一直在我的测试服务器上优化查询,该服务器与实时服务器具有相同的索引。当我在两台服务器上解释查询时,我得到了一个不同的索引。

这不仅仅是一个根本不适合的指数的微小差别。

这是我的查询

SELECT count(Pads.PadID) AS CountOfPadID FROM Pads WHERE ((
RemoveMeDate='2001-01-01 00:00:00') AND (catid between 0 and 11)) 
ORDER BY VersionAddDate DESC;

测试服务器说明 enter image description here

直播服务器解释 enter image description here

继承服务器上的索引,你可以看到索引Cats与查询中使用的字段无关 enter image description here

我已经尝试USE INDEX (sitempacats)这确实有效,但我只是感到困惑为什么会这样做?

1 个答案:

答案 0 :(得分:2)

查询执行中使用的索引不仅取决于您拥有的索引,还取决于数据库中的数据。以及用于生成执行计划的其他几个统计数据。