mysql事务_34

 

redo组成

redo log buffer

--innodb_log_buffer

通畅8M已经足够使用

redo log file

--innodb_log_file_size

--innodb_log_files_in_group

--innodb_log_group_home_dir

和数据文件分开

选择更快的磁盘

redo llog buffer

由log block 组成

每个log block 512kB

no need doublewrite

redo log buffer刷新

master thread 每秒进行刷新

redo log buffer使用大于1/2进行刷新

事务提交时进行刷新

innodb_flush_log_at_trx_commit =  0 1 2

顺序写

ib_logfile1写满 重新写ib_logfile0 没有归档

innodb_flush_log_at_trx_commit =  0:事务提交时不将redo log buffer写入磁盘 最多丢失1秒的事务

1 提交时将redo log buffer写入磁盘

2 事务提交时仅将redo log buffer写入操作系统缓存

哪种性能最好?

inndb_flush_log_at_trx_commit=2是否会导致事务丢失?

innodb_flush_log_at_timeout(5.6才有的参数)master thread 秒N秒进行刷新

组提交:

一次fsync刷新多个事务

性能提高10~100多倍

sysbench update_non_index.lua

开启binlog后组提交失败

mariadb5.5解决

mysql5.6解决

写入密集型应用

mysql5.5raid bbu

不在乎数据一致性可考虑innodb_flush_log_at_trx=2

redo日志分类

物理日志:记录整个页的变化(diff)

逻辑日志:like sql语句

物理逻辑日志:根据页进行记录,内容逻辑

 doublewrite与redo的关系

redo 与binlog的区别

show master status

 show binlog events in  '';

flush binary logs/flush logs

query类型的event 就是ddl

 

 5.7 binlog设置row格式 可以看到sql语句,怎么看?

posted @ 2018-09-12 20:28  吕小果  阅读(178)  评论(0编辑  收藏  举报