
课程咨询: 400-996-5531
投诉建议: 400-111-8989
认真做教育 专心促就业
数据库基础知识的学习与应用是每一位Java编程开发程序员都需要掌握的一个编程知识,而本文我们就通过案例分析来简单了解一下,数据库锁的类型与应用分析。
锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问。
锁类型
共享锁(SLock)
允许事务读一行数据
排他锁(XLock)
允许事务删除或者更新一行数据
意向共享锁(ISLock)
事务想要获得一张表中某几行的共享锁
意向排他锁
事务想要获得一张表中某几行的排他锁
MVCC
多版本并发控制(Multi-VersionConcurrencyControl,MVCC)是MySQL的InnoDB存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。而未提交读隔离级别总是读取新的数据行,无需使用MVCC。可串行化隔离级别需要对所有读取的行都加锁,单纯使用MVCC无法实现。
基础概念
版本号
系统版本号:是一个递增的数字,每开始一个新的事务,系统版本号就会自动递增。
事务版本号:事务开始时的系统版本号。
隐藏的列
MVCC在每行记录后面都保存着两个隐藏的列,用来存储两个版本号:
创建版本号:指示创建一个数据行的快照时的系统版本号;
删除版本号:如果该快照的删除版本号大于当前事务版本号表示该快照有效,否则表示该快照已经被删除了。
Undo日志
MVCC使用到的快照存储在Undo日志中,该日志通过回滚指针把一个数据行(Record)的所有快照连接起来。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。