将MySQL从5.5升级到5.6后查询缓慢
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将MySQL从5.5升级到5.6后查询缓慢,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2765字,纯文字阅读大概需要4分钟。
内容图文
![将MySQL从5.5升级到5.6后查询缓慢](/upload/InfoBanner/zyjiaocheng/888/0989b98cc9604a748f162fb5c67ac7d9.jpg)
我们正在将mysql从5.5升级到5.6,现在某些查询的速度非常慢.
以前需要0.005秒的查询现在需要49秒.
对5.6的查询似乎跳过了索引:
+----+-------------+-------+-------+----------------------------------------------------+---------+---------+------+--------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+----------------------------------------------------+---------+---------+------+--------+-------------+
| 1 | SIMPLE | pens | index | index_contents_on_slug,index_contents_on_slug_hash | PRIMARY | 4 | NULL | 471440 | Using where |
+----+-------------+-------+-------+----------------------------------------------------+---------+---------+------+--------+-------------+
1 row in set (0.00 sec)
但是在5.5上并没有被跳过:
+----+-------------+-------+-------------+----------------------------------------------------+----------------------------------------------------+---------+------+------+----------------------------------------------------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------------+----------------------------------------------------+----------------------------------------------------+---------+------+------+----------------------------------------------------------------------------------------------+
| 1 | SIMPLE | pens | index_merge | index_contents_on_slug,index_contents_on_slug_hash | index_contents_on_slug_hash,index_contents_on_slug | 768,768 | NULL | 2 | Using union(index_contents_on_slug_hash,index_contents_on_slug); Using where; Using filesort |
+----+-------------+-------+-------------+----------------------------------------------------+----------------------------------------------------+---------+------+------+----------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
两个数据库都是从相同的mysql转储创建的.
在5.6上进行导入时,是否不会构建这些索引?如何强制创建索引?
查询:
SELECT `pens`.* FROM `pens` WHERE (slug_hash = 'style' OR slug = 'style') ORDER BY `pens`.`id` DESC LIMIT 1
编辑:删除架构
解决方法:
最终,上面接受的答案是正确的.
@RandomSeed的帮助使我朝着正确的方向思考.基本上,在5.6中创建的优化计划与在5.5中创建的优化计划大不相同,因此您可能必须像我一样对查询进行重新处理.
我没有最终使用FORCE INDEX,而是删除了查询的一部分,直到我确定是什么导致5.6丢失索引.然后,我对应用程序逻辑进行了重新设计以解决该问题.
内容总结
以上是互联网集市为您收集整理的将MySQL从5.5升级到5.6后查询缓慢全部内容,希望文章能够帮你解决将MySQL从5.5升级到5.6后查询缓慢所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。