【数据库-MySQL】mysql日志详解及性能优化

mysql日志分为四大类:慢查询日志,查询日志,错误日志,二进制日志

一.慢查询日志:大于慢查询时间的语句,都会记录在慢查询日志中

1.查看慢查询是否开启 show variables like "slow_query_log"; 如下:slow_query_log: ON/OFF

 

 

slow_query_log_file:慢查看日志名称:slow.log 2.开启慢查询 set global slow_query_log='ON'; 3.查看慢查询时间 show variables like "%long%"; 如下:long_query_time :单位为秒

 

4.设置慢查询时间 set global long_query_time=2; 设置后要重新退出登录mysql才字段值才会更新

 

二.查询日志:查询日志记录了数据库执行的命令,不管这些语法是否正确,都会被记录

1.查询日志一般默认关闭状态

由于数据库操作命令非常多而且比较频繁,所以开启了查询日志以后,数据库可能需要不停的写入查询,这样会增大服务器的IO压力,增加很多的系统开销,所以默认情况下,mysql的查询日志默认关闭

2.查看开关及日志名称

 

3.开启/关闭查询日志开关

set global general_log = "OFF";

 

三.错误日志

1.错误日志包括:mysql执行过程中的错误信息,mysql执行过程中的告警信息,mysq启动和停止过程中产生的信息等

2.查看错误日志相关参数

 

show variables where variable_name="log_error" or variable_name="log_warnings";

log_error:错误日志的存放路径

log_warnings:表示是否记录告警信息到错误日志,0表示不记录告警信息,1表示记录告警信息,大于1表示各类告警信息,例如有关网络故障的信息和重新连接信息写入错误日志

FILE:

 

四.二进制日志

1.作用:二进制日志是一个二进制文件,记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其他额外信息,但是他不记录SELECT、SHOW等那些不改变数据库的SQL语句。二进制日志主要用于数据库恢复和主从复制,以及审计操作

2.查看二进制日志

 

log_bin:表示二进制日志是否开启,ON表示开启,OFF表示未开启,默认OFF

log_bin_basename:二进制日志文件前缀名,二进制日志就记录在该文件中

binlog_format:决定了二进制日志的记录方式,STATEMENT以语句的形式记录,ROW以数据修改的形式记录,MIXED以语句和数据修改混合形式记录

 

https://www.cnblogs.com/plyonfly/p/11469802.html

 

五.优化

1.max_connections:最大连接数,如果你经常看到‘Too many connections’错误,是因为max_connections的值太低了,可以调整为1000

MySQL>show variables like 'max_connections';

2.back_log

由默认的50修改为500 back_log=500

back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。

也就是说,如果MySql的连接数据达到max_connections时,新来的请求将会被存在堆栈中,

以等待某⼀一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,

将不不被授予连接资源。查看mysql 当前系统默认back_log值,

命令:show variables like 'back_log’;

修改配置文件:/etc/my.cnf

https://blog.csdn.net/fuzhongfaya/article/details/80866197

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章