失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MySQL索引不生效的解决办法

MySQL索引不生效的解决办法

时间:2024-05-30 22:50:48

相关推荐

MySQL索引不生效的解决办法

数据库|mysql教程

MySQL,办法,解决

数据库-mysql教程

公司服务用的mysql,最近在查询时时间很慢,经常会上10多秒,查看了一下查询的执行计划,发现索引没有生效。

易语言识图模块源码,vscode rem,微信 ubuntu,tomcat清除缓存,sqlite 是否存在表,网页设计中文字的设计,主机 数据库是什么,微信云服务器 FTP,折叠菜单插件,现前端框架,反爬虫机制,php工资,强强seo,springboot冷门注解,dedecms 产品价格调用标签,做菜网站源码,网页采集软件 源码 xpath,壁纸模板,新网域名解析后台,h5电商页面,帝国网站管理系统前台,小程序 打车源码lzw

存储引擎使用InnoDB。

顺风车app源码,vscode 微信小程序,jtag连接ubuntu,jsp和tomcat漏洞,splash爬虫实战,php字符串链接,山西seo优化认真负责,3g医院网站模板,h5 手机后台管理模板lzw

一开始在主库查询,一直很好奇为什么索引不生效,切换到备库之后,发现备库是有效的。

android推送源码,ubuntu安装本地run,java爬虫类,wikimedia php,seo技术合法lzw

开始考虑是不是因为索引出问题,后对索引重建,发现效率高了不少。

简单记录一下对比。

mysql> explain select * from runinfo where status in (0, 2, 1, 3, 4, 7, 9, 10);+----+-------------+---------+-------+---------------+------+---------+------+----------+-------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows| Extra |+----+-------------+---------+-------+---------------+------+---------+------+----------+-------------+| 1 | SIMPLE| runinfo | All | status_2| NULL | NULL | NULL | 2378055 | Using where |+----+-------------+---------+-------+---------------+------+---------+------+----------+-------------+row in set (0.00 sec)

上面是主库的执行计划。

对比一下备库的执行计划。

mysql> explain select * from runinfo where status in (0, 2, 1, 3, 4, 7, 9, 10);+----+-------------+---------+-------+---------------+----------+---------+------+------+-------------+| id | select_type | table | type | possible_keys | key| key_len | ref | rows | Extra |+----+-------------+---------+-------+---------------+----------+---------+------+------+-------------+| 1 | SIMPLE| runinfo | range | status_2| status_2 | 4 | NULL | 116 | Using where |+----+-------------+---------+-------+---------------+----------+---------+------+------+-------------+row in set (0.00 sec)

可以看出,备库在查询时适应到索引 status_2。

执行如下的命令之后,问题解决。

mysql> OPTIMIZE TABLE runinfo;+------------------+----------+----------+-------------------------------------------------------------------+| Table | Op | Msg_type | Msg_text|+------------------+----------+----------+-------------------------------------------------------------------+| schedule.runinfo | optimize | note| Table does not support optimize, doing recreate + analyze instead || schedule.runinfo | optimize | status | OK|+------------------+----------+----------+-------------------------------------------------------------------+rows in set (47.13 sec)

如果觉得《MySQL索引不生效的解决办法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。