MySQL-mysql如何定位效率低的sql

MySQL-mysql如何定位效率低的sql

浮生未歇 发布于 2017-08-10 字数 145 浏览 1000 回复 4

先前一直是靠运维来通过慢查询的日志来分析得出那个sql的效率低,觉得很不方便,不知道大家平时在检测程序的sql执行效率上有没有其他方便可靠的办法

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

浮生未歇 2017-10-22 4 楼

对于SQL来说,一般是在开发过程中,程序员就已经需要对一条SQL语句进行优化,可以通过explain,或者是慢查询日志,通过MySQL的Profile也能够检测出SQL的效率。SQL调优不能等到网站运营了才去做,而是开发的时候就应该考虑了,而等到运营时只需要解决平时没考虑到的慢SQL查询。否则到时候维护就会很吃力。

泛泛之交 2017-10-01 3 楼

其实通过慢查询日志来分析是一种比较简单的方式,如果不想看日志,可以借助工具来完成,如mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter等,感觉自己来分析一个需要丰富的经验,一个浪费时间。

晚风撩人 2017-10-01 2 楼

可以写一个shell程序实时监控MySQL进程的相关信息,或者是慢查询日志的内容,当MySQL进行出现CPU或者内存占用过多进,或者出现有慢查询的时候可以通过邮件或者短信方式报警。

灵芸 2017-08-20 1 楼

1:mysql安装目录下面找到my.ini打开加入以下内容:

[mysqld]
#记录sql执行超过2秒的SQL语句
long_query_time = 2
#指定记录的文件名
loglog-slow-queries=log-slow.txt
#记录没有使用索引的SQL查询
log-queries-not-using-indexes

2.重启mysql服务器,然后在Data目录下面就会生成log-slow.txt。当SQL执行时间超过2秒或者满足其他条件都会在该文件里面记录下来。