数据库默认隔离级别:
- mysql ——> repeatable
- oracle,sql server ——> read commited
mysql binlog的格式三种:
- statement:记录的是修改SQL语句
- row:记录的是每行实际数据的变更
- mixed:statement和row模式的混合
为什么mysql用的是repeatable而不是read committed:
- 在 5.0之前只有statement一种格式,而主从复制存在了大量的不一致,故选用repeatable。
为什么默认的隔离级别都会选用read commited :
- repeatable存在间隙锁会使死锁的概率增大,在RR隔离级别下,条件列未命中索引会锁表!而在RC隔离级别下,只锁行。
在RC级用别下,主从复制用什么binlog格式:
- row格式,是基于行的复制!
具体参见博客:https://www.cnblogs.com/shoshana-kong/p/10516404.html