MYSQL 日志
-
错误日志
- mysql执行过程中的错误信息
- mysql执行过程中的告警信息
- event scheduler运行时所产生信息
- mysq启动和停止过程中产生的信息
- 主从复制结构中,重从服务器IO复杂线程的启动信息
- show variables like 'log_error';
-
查询日志
- 查询日志分为一般查询日志和慢查询日志,它们是通过查询是否超出变量 long_query_time 指定时间的值来判定的。在MySQL配置文件中设置long_query_time = 10 # 指定慢查询超时时长,超出此时长的属于慢查询,会记录到慢查询日志中log_output={TABLE|FILE|NONE} # 定义一般查询日志和慢查询日志的输出格式,不指定时默认为file
- 一般查询
- 默认是关闭的
- 般查询日志查询的不止是select语句,几乎所有的语句都会记录
- 慢查询
- 询获取锁(包括锁等待)的时间不计入查询时间内
- 慢查询日志的工具mysqldumpslow
- 慢查询分析
- 开启慢查询日志,捕获慢SQL
- SHOW VARIABLES LIKE '%slow_query_log%';
- 启用慢查询日志set @@global.slow_query_log=on;
- explain+慢SQL分析
- 慢查询分析 缺点
- • EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况• EXPLAIN不考虑各种Cache• EXPLAIN不能显示MySQL在执行查询时所作的优化工作• 部分统计信息是估算的,并非精确值• EXPLAIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划
- show profile查询SQL语句在服务器中的执行细节和生命周期
- Show Profile是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优测量默认关闭,并保存最近15次的运行结果
- SQL数据库服务器参数调优
- 当order by 和 group by无法使用索引时,增大max_length_for_sort_data参数设置和增大sort_buffer_size参数的设置
- 慢查询分析 缺点
- 开启慢查询日志,捕获慢SQL
-
二进制日志
- 二进制日志是一个二进制文件,记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其他额外信息,但是他不记录SELECT、SHOW等那些不改变数据库的SQL语句。二进制日志主要用于数据库恢复和主从复制,以及审计操作。
- 三种记录方式
- STATEMENT
- 记录对数据库做出修改的语句,比如,update A set test='test',如果使用statement模式,那么这条update语句将被记录到二进制日志中,使用statement模式时,优点是binlog日志量少,IO压力小,性能高,缺点是为了尽可能一致的还原操作,除了记录语句本身外,可能还需要记录一些相关信息,而且,在使用一些特定函数时,并不能保证恢复操作与记录完全一致
- ROW
- 记录对数据库做出的修改的语句所影响到的数据行以及这些行的修改,比如,update A set test='test',如果使用row模式,那么这条update所影响到的行所对应的修改,将会记录在binlog中,使用row模式时,优点是能完还原和复制被日志记录时的操作,缺点是日志量较大,IO压力比较大,性能消耗比较大
- MIXED
- 混合上述两种模式,一般使用statement方式进行记录,如果遇到一些特殊函数使用row方式进行记录,这种记录方式称为mixed
各位看官大佬,不足之处,多多批评指正,不胜感激!

浙公网安备 33010602011771号