mysql 性能优化之慢查询

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38126105/article/details/85173825

在执行mysql语句的时候,我们可能会遇到2003的错误(执行超时错误),或者执行太耗时间了,这时我们需要定位到那些语句比较耗时,从而有目标的优化对应的sql语句。那么怎么定位到这些sql语句呢?
这时,我们就需要考虑到mysql的慢查询了。对于mysql的操作我觉得native非常好,所以,记录下,使用native如何进行慢查询?

  • 打开native -> 工具 -> 服务器监视在这里插入图片描述
    2.选择要监视的进程,勾选对应的环境变量。
    在这里插入图片描述3.设置对应的环境变量
  • a) slow_query_log 设置为ON 打开慢查询记录
  • b) slow_query_log_file 设置保存的log路径
  • c) long_query_time设置慢查询记录的时间,单位是s,可以设置成小数
    4.验证功能是否开启
    执行一个大于查询时间的语句,推荐 select sleep(大于查询时间);然后看下是否记录在对应的log文件中。
    5.使用对应的分析工具(是一个perl脚本),mysqldumpslow.pl进行分析,该文件存放在mysql的安装目录下(默认为C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin),该脚本文件的执行需要安装ActivePerl https://www.activestate.com/products/activeperl/downloads/ 。 安装完成后便可以执行。
    6.mysqldumpslow 的参数
    -s 按照那种方式排序
    c:访问计数
    l:锁定时间
    r:返回记录
    al:平均锁定时间
    ar:平均访问记录数
    at:平均查询时间
    -t 是top n的意思,返回多少条数据。
    -g 可以跟上正则匹配模式,大小写不敏感。
    例子:
  1. 返回记录最多的20条记录
    mysqldumpslow -s r -t 20 sqlslow.log
  2. 得到平均访问次数最多的20条sql
    mysqldumpslow -s ar -t 20 sqlslow.log

猜你喜欢

转载自blog.csdn.net/m0_38126105/article/details/85173825