-
加锁
查看全部 -
a
查看全部 -
多版本并发控制原理分析 之 隐式字段
(1) DB_TRX_ID
a. 占用6byte
b. 记录了创建这条记录时, 最近一次创建或修改该记录的事务id
(2) DB_ROLL_PTR
a. 占用7byte, 回滚指针
b. 指向这条记录的上一个版本(存储于rollback segment回滚段里)
(3) DB_ROW_ID
a. 6byte, 隐含的自增ID(隐藏主键)
b. 如果数据表没有主键, Innodb会自动以DB_ROW_ID产生一个聚簇索引.
(4) 创建版本号
记录了创建事务时的版本号
(5) 删除版本号
记录了删除事务时的版本号
隐式字段填充过程:
(1) 初始化数据:
DB_TRX_ID : NULL, DB_ROLL_PTR : NULL, DB_ROW_ID : 1
此时没有事务, 所以前两个为null, row_id会自增填充.
属于历史记录, 存储在undo log里
(2) 事务1 (假如修改了某字段值):
DB_TRX_ID : 1, DB_ROLL_PTR : 指针, DB_ROW_ID : 1
开启了事务, 所以回滚指针指向了上一个版本的记录.
(3) 事务2:
第二个事务, DB_TRX_ID会变为最近一次的事务id, 即从1变为2. 指针指向了事务1的版本.
查看全部 -
1. 事务隔离级别
(1) read uncommitted (读未提交) 导致: 脏读, 不可重复读, 幻读
(2) read committed (读已提交) 导致: 不可重复读, 幻读
(3) repeatable read (重复读) 导致: 幻读(MVCC, next-key-lock解决幻读)
(4) serialiable (串行化)
1.1 脏读:
(1) 当前事务读取到了并行的其他事务修改的数据, 这些数据还没有提交.
(2) 也就是在并行事务的场景下, 不同事务之间对于数据的修改相互可见.
(3) 这样读取到的数据可能就是个脏数据, 因为那个数据可能还没提交或者在回滚, 所以读到的数据不是最终确认的数据.
1.2 不可重复读:
(1) 在不同事务之间, 并行的事务进行读取数据, 这一行的数据读取到的值有可能在其他并行事务中被修改.
(2) 修改之后的值有可能已经把这个值改变了. 改变之后, 事务进行的提交或者回滚, 再在当前事务里对该数据进行读取, 可能读取到的值会发生变化.
(3) 这样前后两次读取到的值就是不相同了, 这就是不可重复读.
1.3 幻读:
(1) 在同一个事务中前后两次读取到的数据条数不相同. 其他事务可能进行了一个插入操作.
(2) 进行插入的数据, 有可能会影响到当前事务的业务逻辑. 读取到的数据行数不一样.
(3) 读取到的数据像是幻影, 即幻读.
查看全部 -
哈哈哈哈哈哈哈哈哈哈
查看全部 -
select @@global.tx_isolation; // 系统隔离级别
select @@tx_isolation; //会话隔离级别
查看全部 -
mysql hide field
查看全部 -
mysql log
查看全部 -
如何查看SQL语句是否走了索引(explain)?上图所示
联合索引最左原则
区分度低的字段不适合建索引
联合索引字段个数不宜太多,充分权衡插入删除操作及DBA操作表成本
索引组合索引、少用单列索引
where, on, group by, order by 后面跟着字段创建索引
创建了索引,不代表就走了索引
查看全部 -
mysql多版本并发控制原理
教学目标
1、摆脱增删改查
2、mvcc原理是什么
3、介绍数据库的一些坑
学习路线及重点
1、事务隔离级别-种类、查看、设置、选择、关联
2、通过现象引发思考-并发事务不同隔离级别的效果
3、多版本并发控制原理
4、mysql总结
查看全部 -
MySQL数据库 多版本并发控制 增删改查程序员
MVCC原理的一些问题
数据库的坑
学习路线与学习重点
通过现象引发思考 并发事务不同隔离级别的效果
多版本并发控制原理
mysql经验总结
查看全部 -
可重复读级别,在首次快照读时生成读视图
读已提交级别,在每次快照读时生成读视图
查看全部 -
索引
查看全部 -
事务
查看全部 -
MySQL
查看全部 -
多版本并发控制
查看全部 -
数据可见性算法
查看全部 -
读视图
查看全部 -
读视图
查看全部 -
SELECT FOR UPDATE
查看全部 -
隐式字段
查看全部 -
聚簇索引
查看全部 -
串行化
查看全部 -
选择隔离级别
查看全部 -
查看 MySQL 事务隔离级别
设置 MySQL 事务隔离级别
查看全部 -
MySQL事务隔离级别
读未提交
读已提交
可重复读
串行化
查看全部 -
章节学习目录
查看全部 -
MySQL
查看全部
举报