我在表中有8百万条记录,这个查询太慢了。它是站点地图(我们需要将其全部索引)。在这个例子中,我从6百万位置中选择了1000个项目。
SELECT source, identifier
FROM mh_download
WHERE deleted =0
LIMIT 6000000 , 1000
33秒
表是MyISAM,删除的列有索引。 MySQL版本5.5.41。
答案 0 :(得分:3)
我发现重复 Why does MYSQL higher LIMIT offset slow the query down?
所以最好的解决方案是
1)Hold the last id of a set of data(30) (e.g. lastId = 530)
2)Add the condition "WHERE id > lastId limit 0,30"
感谢大家的耐心