PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 数据库 > MySQL教程 > 正文

    mysql性能优化:让MySQL记录下那些执行时间特别长的SQL语句

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:在做MySQL语句查询性能的优化时我们可以让MySQL记录下那些执行时间特别长的SQL语句,以便于我们找到是哪些SQL影响了MySQL的性能。在MySQL中...
    • 在做MySQL语句查询性能的优化时我们可以让MySQL记录下那些执行时间特别长的SQL语句,以便于我们找到是哪些SQL影响了MySQL的性能。在MySQL中,这种执行时间超过了指定时间的SQL语句查询就称之为「慢查询」(或「慢速查询」)。
       
      在MySQL中,慢查询的界定时间是由MySQL内置参数变量long_query_time来指定的,其默认值为10(单位:秒),我们可以通过show variables like 'long_query_time';指令来查看该参数变量的信息:
      mysql性能优化:让MySQL记录下那些执行时间特别长的SQL语句
      long_query_time的默认值为10秒
       
      不过,在程序开发过程中,我们认为慢速查询的界定时间并没有10秒这么长,依据不同项目的不同需求,我们一般将慢查询的界定时间设定为1~5秒之间。我们可以使用指令set long_query_time = 秒数来设定long_query_time变量的值。
      mysql性能优化:让MySQL记录下那些执行时间特别长的SQL语句
      设定long_query_time的值为1秒
       
      修改了long_query_time参数后,我们还需要让MySQL能够记录下慢查询的日志信息。因为,在默认情况下,MySQL并不会记录慢查询的日志信息。如果要记录慢查询日志,我们需要以命令行方式进入MySQL安装目录\bin目录(也可将该目录添加到PATH环境变量中),使用如下命令重新启动MySQL
      #中括号[]内的部分是可选的,file_name表示日志文件路径
      #在5.5及以上版本的MySQL中,使用如下命令启动:
      mysqld --show-query-log[=1] [--show-query-log-file=file_name]
      #在5.0、5.1等低版本的MySQL中,使用如下命令启动:
      mysqld --log-slow-queries[=file_name]
      在上述命令中,如果没有指定日志文件名,则日志文件名称默认为主机名-slow.log;如果没有指定文件路径或者指定的文件路径不是绝对路径,则日志文件将默认存放在MySQL配置文件my.ini中参数datadir所指定的目录下。
       
      此外,你也可以将上述命令行启动命令配置到my.ini中的[mysqld]节点下,这样无需每次手动键入上述命令来启动。
      [mysqld]
      #设置慢查询界定时间为1秒
      long_query_time=1
      #5.0、5.1等版本配置如下选项
      log-slow-queries="mysql_slow_query.log"
      #5.5及以上版本配置如下选项
      slow-query-log=On
      slow_query_log_file="mysql_slow_query.log"
      注意:虽然慢查询的名字中只包含了"查询",实际上并不仅仅表示SELECT查询操作,诸如INSERT、UPDATE、DELETE、CALL等其他DML操作,只要是超过指定时间的,都可以称之为「慢查询」,并且会记录在慢查询日志中。

      转载:http://www.hello-code.com/blog/mysql/201511/5677.html

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-35-3035-1.html
    相关热词搜索: