binlog三种方式
1.基于sql语句模式
针对sql中有函数,存储过程的情况,同步会有问题;
2. 基于行模式;
3. 混合模式,sql语句和行的结合体;
mysql配置
查询最大连接数:
show variables like 'max_connections';
InnoDB知识点
锁分为表锁和行锁;
表锁有 S共享锁,X排它锁; IS 意向共享锁,IX意向排它锁;

意向锁的设计目的,只是为了方便上层资源检查下层资源是否有被占用的加速设计,本身并不能增加并发度。
行锁有S共享锁,X排它锁;

MVCC 原理
如何解决幻读
用间隙锁 - Gap Locks
锁定一段范围内的索引记录,间隙锁锁住的是两个索引之间的区间;
当我们查询的记录不存在,没有命中任何一个 record,无论是用等值 查询还是范围查询的时候,它使用的都是间隙锁
间隙锁会锁住一个左开右开的区间;
间隙锁是为了解决幻读问题,是为了防止其他事务往索引间隙中插入数据,所以相同的间隙锁之间是不冲突的;
间隙锁只会阻塞插入操作;
间隙锁只存在RR隔离级别下;
参考:
本文介绍了MySQL的binlog三种模式:基于SQL语句、行模式和混合模式,其中行模式在处理复杂SQL时更为可靠。此外,详细阐述了InnoDB的锁机制,包括表锁(S、X、IS、IX)和行锁(S、X),以及意向锁的作用。还提到了MVCC多版本并发控制原理,并指出间隙锁在解决幻读问题中的应用,特别是在Repeatable Read隔离级别下。
234

被折叠的 条评论
为什么被折叠?



