任何人都可以提出如何改进我的查询,它用于网站地图和theres 80000页,因此限制。MySql,任何人都可以建议如何提高我的查询/索引?
继承人我查询
SELECT PageName
FROM pads
WHERE RemoveMeDate = '2001-01-01 00:00:00'
ORDER BY PadID DESC
LIMIT 20000 , 30000
我的继承人EXPLAIN
继承人的指标我已经
任何人都可以提出如何改进我的查询,它用于网站地图和theres 80000页,因此限制。MySql,任何人都可以建议如何提高我的查询/索引?
继承人我查询
SELECT PageName
FROM pads
WHERE RemoveMeDate = '2001-01-01 00:00:00'
ORDER BY PadID DESC
LIMIT 20000 , 30000
我的继承人EXPLAIN
继承人的指标我已经
尝试使用任何指标不。 表中总共有几行?
我注意到你正在寻找约10万行的约48K行匹配RemoveMeDate - 表必须很大,或者你必须选择一大部分的表。
SELECT PageName
FROM pads USE INDEX()
WHERE RemoveMeDate = '2001-01-01 00:00:00'
ORDER BY PadID DESC
LIMIT 20000 , 30000
不使用任何索引强制它只扫描表。 现在,如果这没有帮助并且速度较慢,请尝试制作一个指定DESC的特定索引,例如,试试这两个以下
CREATE INDEX IX_pads_rmd_iddesc ON pads (RemoveMeDate, PadID DESC, PageName)
CREATE INDEX IX_pads_rmd_iddesc ON pads (RemoveMeDate, PadID DESC)
在使用的情况下FORCE INDEX结合它不会自动选择
SELECT PageName
FROM pads USE INDEX(IX_pads_rmd_iddesc)
WHERE RemoveMeDate = '2001-01-01 00:00:00'
ORDER BY PadID DESC
LIMIT 20000 , 30000
注意的是,即使指数再创造“PadID DESC”之一,它被忽略由MySQL。人们可以希望有一天它能够落实到位。
index_col_name规范可以 以ASC或DESC结尾。这些关键字 被允许用于将来的扩展 指定升序或降序 索引值存储。目前,他们 被解析但被忽略;索引值 总是按升序存储。
如果没有自动选择正确的索引,则应查看“强制索引”或“使用索引”。
期望改善的目标应该是什么? – Bjoern 2011-01-19 08:46:05
为了让它更快,1.9秒 – Jules 2011-01-19 09:17:57