慢查询日志
参数配置
- log_query_time:超过该阈值时间的查询为慢查询;
- log_slow_queries:可以设置为ON/OFF,表示开启和关闭慢查询日志;
- log_queries_not_using_indexes:可以设置为ON/OFF,表示是否记录未使用索引的查询到慢查询日志中;
- log_throttle_queries_not_using_indexes:表示每分钟允许记录到慢查询日志的且未使用索引的查询,默认为0表示没有限制,若是没有使用索引的查询特别多,慢查询日志会迅速膨胀,可以用该参数来进行控制。
如何分析慢查询日志
mysqldumpslow ***_slow.log
若用户需要查询时间最长的十条SQL
mysqldumpslow -s al -n 10 ***_slow.log
从MySQL5.1版本开始慢查询日志可以放入一张表中,通过参数log_output来设置,该参数可以设置为File和Table,file表示以文件的方式,table表示以MySQL表格的形式。
二进制文件 binlog
对MySQL数据库执行更改的所有操作进行记录
作用:1)恢复 2)复制 3)审计
参数配置
- log_bin:开启binlog并指定文件目录;
- max_binlog_size:单个二进制文件的大小限制;
- binlog_cache_size中:事务未提交,二进制日志被记录到缓冲中,该缓冲大小由该参数决定,如果设置的太小,日志文件大小超过该值,会把日志文件写入临时文件中,涉及到磁盘IO影响性能;
- sync_binlog:sync_log[=N],表示每写N次日志就同步到磁盘,默认为1;
- binlog_do_db:需要写入哪些库的二进制日志文件;
- binlog_ignore_db:需要忽略哪些库的二进制日志文件;
- log_slave_update:slave角色是否需要同步master的日志文件,若需要必须将参数设置为ON;
- binlog_format:二进制文日志文件的格式,默认为Statement,可选项项还包括row和mixed;
- innodb_support_xa:设置为1解决二进制文件和InnoDB存储引擎数据文件的同步。
如何查看二进制文件:
mysqlbinlog -vv --start-position=**** ***.0001
重做日志文件
默认情况下,数据目录下会有两个名为ib_logfile0和ib_logfile1的文件,就是重做日志文件,重做日志组默认包含两个日志文件,先写日志文件1,文件1写满之后,切换到日志文件2,文件2写满之后,又切换回日志1。
配置参数
- innodb_log_file_size:指定每个重做日志文件的大小,最大为512GB;
- innodb_log_files_in_group:日志文件组中重做日志文件的数量,默认为2;
- innodb_mirrored_log_groups:日志镜像文件组的数量,默认为1;
- innodb_log_group_home_dir:日志文件的路径;
- innodb_flush_log_at_trx_commit:控制提交操作时处理重做日志的方式,有效值为0,1,2,0表示等待主线程刷新磁盘,1表示每次事务提交都将重做日志写入文件中,2表示将刷新磁盘的时机交给操作系统,三种方式对应不同的级别的持久性。
网友评论