所在的位置: mysql >> mysql前景 >> mysql慢查询优化

mysql慢查询优化

北京中科白癜风医院坑不坑 http://baidianfeng.39.net/a_zzzl/170125/5212076.html

前段时间帮客户迁移了一个网站,迁移前数据库使用的是mysql5.5,迁移后使用的是mysql5.7。当经过一番折腾之后,网站重新上线运行,遂电话告知客户,一会儿他打来电话说访问不了,我试了下能访问,但是巨慢。据客户说之前运行正常,没出现这么慢的情况,没办法,既然收了人家的银子,就给人家解决吧。

看了下慢查询日志,发现不少语句耗时都在10秒以上,最多还有耗时秒的。这就纳了闷了,难道跟数据库版本有关系,网上搜了一番,也没说5.7的版本比5.5有啥大变化的。遂开始逐条分析sql语句,查看执行计划。

比如慢查询日志中的这条语句,耗时多条。

#Time:-10-15T16:15:05.Z

#Query_time:.Lock_time:0.Rows_sent:55Rows_examined:

SETtimestamp=;

select*fromsnewssnwheresn.schoolid=andisverified=1orderbyaddtimedesc;

查看执行计划:

explainselect*fromsnewssnwheresn.schoolid=andisverified=1orderbyaddtimedesc;

1.Extra字段表明查询中使用了where,但type值是ALL,说明是全表扫描;

2.possible_keys和key值都为空,说明没有使用到索引或者该表没有建立索引;

3.Extra字段还表明该查询使用到了文件排序。

针对如上问题,建立组合索引即可,创建组合索引语句如下

CREATEINDEXidx_news_


转载请注明:http://www.aierlanlan.com/cyrz/2256.html