MySQL如何快速定位慢查询的语句

步骤一:首先了解MySQL数据库的运行状态查询情况
        使用命令show [session|gobal] status
      例子:show status like 'uptime';    【查询当前使用MySQL数据库的时间长度】
        show status like 'com_select';    【查询当前使用select语句的次数】
        show status like 'com_delete';    【查询当前使用delete语句的次数】
        show status like 'com_insert';    【查询当前使用insert语句的次数】
        show status like 'com_update';    【查询当前使用update语句的次数】
        show status like 'connections';    【查询当前链接到本数据库的连接次数】
        show status like 'slow_quaries';【查询慢查询的次数】
    注意:默认使用session,即当前会话;也可指定global,即从MySQL启动开始到当前为止的全部过程情况。
步骤二:然后设置慢查询的时间(默认为10秒)
        说明:慢查询时间是指执行语句的时间超过该指定的慢查询时间时,该语句则被划分为慢查询语句。
        show variables like 'long_query_time';    【查询慢查询的时间】
        set long_query_time=1;    【修改慢查询时间为1秒钟】

        注意:一旦退出并重新登录到MySQL时,则该慢查询的时间会恢复到默认的10s.
步骤三:把执行时间超过1秒的语句统计到日志文件
        说明:默认情况下,MySQL不会记录慢查询,需要在启动MySQL时指定日志文件才可以。
        操作步骤:
            (1)关闭MySQL,再重启;(进入系统服务停止MySQL进程)
            (2)进入用命令控制台,先切换到bin所在的目录(例如cd f:\MySQL5.5),
                 然后执行bin\mysqld.exe --safe-mode --slow-query-log  【MySQL5.5可在my.ini指定,此时默认的日志文件
                 所在处可查看my.ini文件中的datadir中的值,一般是MySQL安装主目录\data下】
                 或者bin\mysqld.exe -log-slow-queries=f:/aaa.log  【低版本MySQL5.0可在my.ini指定】
                 命令。
                (执行命令后在data目录下得到.log文件[记录慢查询的语句和运行情况]和.pid文件[指明进程ID号])
            (3)重新登录到MysQL,并重新设置慢查询时间为1秒,然后执行各个SQL语句。

                (一旦语句的执行时间超过1秒,则数据库管理系统会自动把该语句及其相关信息记录到日志文件中汇总)

注意事项:my.ini文件在MySQL的安装主目录下可找到,在该文件中的datadir的路径值不要随意修改。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值