MYSQL日志定位性能问题

MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。

MySQL日志文件系统的组成
   a、错误日志:记录启动、运行或停止mysqld时出现的问题。
   b、通用日志:记录建立的客户端连接和执行的语句。
   c、更新日志:记录更改数据的语句。该日志在MySQL 5.1中已不再使用。
   d、二进制日志:记录所有更改数据的语句。还用于复制。
   e、慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。


日志必然会拖慢系统速度,所以日志记录默认是关闭的,定位问题时需要打开日志记录。

首先我们打开慢日志记录,用于记录消耗时间超过某个范围的sql,来定位增删改查sql的执行效率。

show variables like 'version'; //查看数据库版本号

+---------------+------------+   | Variable_name | Value      |   +---------------+------------+   | version       | 5.5.39-log |   +---------------+------------+

show variables like '%slow%'; //查看日志是否开启

+---------------------+---------------------------------+   | Variable_name       | Value                           |   +---------------------+---------------------------------+   | log_slow_queries    | OFF                             |   | slow_launch_time    | 2                               |   | slow_query_log      | OFF                             |   | slow_query_log_file | /var/lib/mysql/suse11b-slow.log |   +---------------------+---------------------------------+ 

set global slow_query_log='ON';   //打开日志记录

set global long_query_time=1;//将全局级别long_query_time设置为1秒

set session long_query_time=1;//将session级别long_query_time设置为1秒

show variables like '%long_query_time%';//查看慢日志时间范围,超过时间范围的sql才会被计入日志

+-----------------+-----------+   | Variable_name   | Value     |   +-----------------+-----------+   | long_query_time | 10.000000 |   +-----------------+-----------+ 




你可能感兴趣的:(像DBA一样使用数据库)