mysql优化之(定位到需要优化的sql语句)

是周期性的变化还是偶尔问题?

是服务器整体性能的问题, 还是某单条语句的问题?

具体到单条语句, 这条语句是在等待上花的时间,还是查询上花的时间.

监测并观察服务器的状态.

1:观察服务器状态, 一般用如下2个命令,Show status;  Show processlist;

2:也可以通过druid对数据库监控进行观察

3:也可以通过记录慢查询日志观察

 

最好的优化:

不查询>表结构不合理>sql语句效率低>硬件

我们一般注重的是sql语句效率低。

 

Show processlist;

这个命令是显示当前所有连接的工作状态.

如果观察到以下状态,则需要注意

converting HEAP to MyISAM 查询结果太大时,把结果放在磁盘 (语句写的不好,取数据太多)

create tmp table             创建临时表(如group时储存中间结果,说明索引建的不好)

Copying to tmp table on disk   把内存临时表复制到磁盘 (索引不好,表字段选的不好)

locked         被其他查询锁住 (一般在使用事务时易发生,互联网应用不常发生)

猜你喜欢

转载自blog.csdn.net/Lei_Da_Gou/article/details/89447846