数据库|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索引不生效的解决办法》对你有帮助,请点赞、收藏,并留下你的观点哦!