MySQL性能优化(一)--慢查询

一、慢查询概念

        慢查询的全称为慢查询日志,在mysql的配置文件中设置SQL操作的时间阀值,我们将超过这个阀值的SQL操作称之为慢查询;

        这里所说的慢查询并不是限指select操作,如果insert,update,delete等SQL操作也有超时的,那也是会记录在慢查询日志中的;

二、慢查询参数配置相关

       1、查看是否开启慢查询

       首先要说明一点,如果你在进行测试时,性能方面没有什么问题,那么mysql的慢查询是不建议开启的,开启的话也会在一定程度上影响MySQL的性能;

       如何查看慢查询是否开启;

       show variables  like 'slow%';

       

       slow_query_log=ON  那么说明慢查询操作开启;

       slow_launch_time : SQL操作的时间阀值

       slow_query_log_file:  慢查询日志存放地址

       2、如何通过全局变量找开慢查询操作

       set @@global.slow_query_log = ON;

       3、通过修改my.ini慢查询的配置:

       我所安装的MySQL是windows版本 5.6的

       3.1  找到MySQL 5.6版本的my.ini文件

      该文件默认存在于 C:\ProgramData\MySQL\MySQL Server 5.6

     

    3.2  修改my.ini文件

     打开my.ini文件,查看是否有相关慢查询日志的参数;    

  

  如果有则按照自己的需要进行修改,如果没有则添加以下几项就可以了:

  log-output=FILE  # 表示日志信息将用文件的形式存放

  slow-query-log=1 # 表示慢查询日志打开状态

  slow_query_log_file = 文件存放目录 # 可以自定义日志文件的存放目录,比如我这里定义的mysql_log文件夹中

  long_query_time =2 # 表示设置的时间阀值为2秒,时间单位为秒,一般设置为5-10S

  3.3 重启MySQL服务

     修改了my.ini文件,重启一下MySQL服务是最好的

     SQL举例:

     操作语句:select sleep(5);  

     查看慢查询日志文件:

     

    日志文件中会记录该SQL语句的详细信息;

    4、将日志信息存放在表中;

    MySQL允许将日志信息存放在数据库表中,存放的表名称为:mysql.slow_log

   4.1  修改记录日志的方式

   方法一:

       set @@global.log_output='TABLE';

   方法二:修改my.ini文件

  log-output=TABLE  # 表示日志信息存放于表中

    4.2 查看表中的日志信息

    select * from my.slow_log;

   如图所示:

    好了,以上就是MySQL性能优化的第一步操作了,认识和配置慢查询操作,更多技术交流请加QQ群:1085210541;

猜你喜欢

转载自www.cnblogs.com/luoman/p/12561519.html