MySQL 语句执行时间过长
尝试在包含大约 100 万条记录的大型数据库上执行查询时,遇到了执行时间延长的问题。具体来说,从“评级”表中获取记录的查询特别慢:
select * from `ratings` order by id limit 499500, 500
尽管在“id”列上使用了索引,但问题仍然存在。然而,将表大小减少到 10,000 条记录会显着加快查询时间。
解释:
使用“EXPLAIN”语句检查查询计划后,发现显示原始查询使用全表扫描,导致执行效率低下。相反,当添加“where”子句时,会使用更高效的范围索引扫描,从而显着提高性能。
select * from `ratings` where id>=499501 limit 500
注意事项:
使用使用适当的索引来过滤结果的“where”子句可以显着提高查询性能。
必须确定数据库内没有发生死锁,死锁也可能导致查询执行缓慢。
以上是为什么我的 MySQL 查询即使有索引也这么慢?的详细内容。更多信息请关注PHP中文网其他相关文章!