MySQL 常用命令及参数说明

sync-binlog = 1
innodb_flush_log_at_trx_commit = 1

sync-binlog=0: 关闭通过MySQL服务器将二进制日志刷入磁盘,MySQL服务器依赖于操作系统每秒将二进制日志刷新到磁盘。这个设置提供了最好的性能,但是当碰到断电或系统崩溃的时候,可能会造成服务器提交的事务没有被同步到二进制日志中。
sync-binlog=1: 开启在事务提交前将二进制日志刷入磁盘。这是最安全的设置,但是这对磁盘读写会造成负面影响。当碰到断电或系统崩溃的时候,丢失的事务只是进入准备状态,这个操作允许自动恢复程序去回滚这些事务,保证了没有事务会从二进制日志中丢失。
sync-binlog=N: 每向二进制日志文件写入N条SQL或N个事务后,则把二进制日志文件的数据刷新到磁盘上;

innodb_flush_log_at_trx_commit=0: log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作。
innodb_flush_log_at_trx_commit=1: 完全遵从ACID,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去。
innodb_flush_log_at_trx_commit=2: 每次事务提交时MySQL都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。

innodb-log-files-in-group = 5          #redo log 组数
innodb-log-files-size = 128M          #redo log 大小
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
SELECT r.trx_id
SHOW PROCESSLIST;
SHOW ENGINE INNODB STATUS;

你可能感兴趣的:(MySQL 常用命令及参数说明)