首页 > 数据库 > mysql教程 > 为什么我的 MySQL 查询即使有索引也这么慢?

为什么我的 MySQL 查询即使有索引也这么慢?

Mary-Kate Olsen
发布: 2024-11-19 14:59:02
原创
334 人浏览过

Why is My MySQL Query So Slow, Even with an Index?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板