mysql - 使用数百万条记录加速 LIMIT 查询

标签 mysql myisam

我的表中有 800 万条记录,这个查询太慢了。它用于站点地图(我们需要将其全部编入索引)。在这个例子中,我从位置 600 万中选择了 1000 个项目。

SELECT source, identifier
FROM mh_download
WHERE deleted =0
LIMIT 6000000 , 1000

33 秒

表是 MyISAM,删除的列有索引。 MySQL 版本 5.5.41。

最佳答案

我发现了重复的 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"

谢谢大家的耐心等待

关于mysql - 使用数百万条记录加速 LIMIT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31239048/

相关文章:

mysql - 什么时候 MyISAM 比 InnoDB 好?

php - 如何检查一个值是否大于数组中的值

php - 从 mysql 中的 2 个表中获取数据(需要帮助)

ASP.NET 如何从参数化 SQL 查询中删除双引号?

MySQL 和 FK 约束

mysql - 有没有一种简单的方法可以将 MySQL 表转换为 Redis 表?

sql - 在 SQL 中,我们可以使用 "Union"来合并两个表。 "Intersection"有哪些不同的方法?

php - 从数据库中选择 php 脚本中的 id (Android)

mysql - ALTER TABLE table_name ENGINE=/mysql_convert_table_format 哪个更好

mysql - 在数据库中按视频时间保存视频观看统计数据