mysql调优常用配置
expire_logs_days:
max_allowed_packet:
max_connect_errors:
skip_name_resolve:
sql_mode:
sysdate_is_now:
read_only:
skip_slave_start:
slave_net_timeout:
sync_master_info,sync_relay_log,sync_relay_log_info:
附:
innodb_log_file_size: 事务日志大小
innodb_buffer_pool_size: innodb缓冲池
innodb_flush_log_at_trx_commit: 默认1 将事务日志从innodb log buffer写入到redo log中
(
N=0 每隔一秒,把事务日志缓存区的数据写到日志文件中,以及把日志文件的数据刷新到磁盘上;
log buffer 会 每秒写入到日志文件并刷写(flush)到磁盘。但每次事务提交不会有任何影响,也就是 log buffer 的刷写操作和事务提交操作没有关系。在这种情况下,MySQL性能最好,但如果 mysqld 进程崩溃,通常会导致最后 1s 的日志丢失。
N=1 每个事务提交时候,把事务日志从缓存区写到日志文件中,并且刷新日志文件的数据到磁盘上;
当取值为 1 时,每次事务提交时,log buffer 会被写入到日志文件并刷写到磁盘。这也是默认值。这是最安全的配置,但由于每次事务都需要进行磁盘I/O,所以也最慢。
N=2 每事务提交的时候,把事务日志数据从缓存区写到日志文件中;每隔一秒,刷新一次日志文件,但不一定刷新到磁盘上,而是取决于操作系统的调度;
)
sync_binlog 默认0 将二进制日志文件刷新到磁盘上。
N>0 每向二进制日志文件写入N条SQL或N个事务后,则把二进制日志文件的数据刷新到磁盘上;
N=0 不主动刷新二进制日志文件的数据到磁盘上,而是由操作系统决定;
推荐: innodb_flush_log_at_trx_commit: 2,sync_binlog: 500