当前位置: 首页> 教育> 高考 > 网页设计论文html_电子商务网站硬件建设的核心是_网站查询器_免费做网站的平台

网页设计论文html_电子商务网站硬件建设的核心是_网站查询器_免费做网站的平台

时间:2025/7/22 10:18:23来源:https://blog.csdn.net/2303_76696898/article/details/142407442 浏览次数:0次
网页设计论文html_电子商务网站硬件建设的核心是_网站查询器_免费做网站的平台

MySQL的事务实现主要通过:锁、Redo Log、Undo Log、MVCC
        ●锁:(行锁,间隙锁等):控制数据并发修改,满足事务隔离性。
        ●Redo Log(重做日志):记录事务对数据库的所有修改,崩溃时恢复未提交的更改,满足事务的持久性。
        ●Undo Log(回滚日志):记录事务的反向操作,也就是保存数据的历史版本,用于事务的回滚,事务失败后可恢复到之前状态,实现原子性和隔离性。
        ●MVCC(多版本并发控制):满足非锁定读的需求,提高并发度,实现读已提交和可重复读两种隔离级别,实现了事务隔离性。
PS:通过“AID”即原子性,隔离性,持久性来实现一致性的结果。


锁的类型


共享锁(S)和排它锁(X)


事务读取记录时获得S锁,修改记录获取X锁

image.png


元数据锁


读锁(MDL_SHARED)和写锁(MDL_EXCUSIVE):
事务读取表元数据(SELECT,INSERT,UPDATE,DELETE)获取MDL_SHARED锁,修改表元数据(ALTER TABLE)获取MDL_EXCUSIVE锁。


意向锁


共享意向锁(IS)和独占意向锁(IX)
在上表级锁的时候,可以快速判断是否可以上锁,不需要遍历所有记录。

image.png



行锁


记录锁、间隙锁、临键锁


乐观锁和悲观锁


乐观锁(并发冲突少,读多写少):
认为每次执行都不会发生冲突,提交操作利用标识(通常为版本号字段)对比(CAS操作),确认其他操作没有修改过便提交。
悲观锁(冲突多,写多读少):
认为每次操作都会冲突,每个操作执行完以后才放锁,再通过争抢得到锁再进行操作。

MVCC


指多版本并发控制,指的是一条记录会有多个版本,每次修改记录都会存储这条记录被修改前的版本。

image.png


执行insert(1,**)成功后: trx_id:当前事务ID。


roll_pointer

指向Undo Log的指针

image.png


提交上一个事务,再执行update No where id 1:

image.png


可见insert事务提交后Undo Log被回收,log类型为

image.png


提交上一个事务,再执行update Yes where id 1:

image.png

TRX UNDO UPD EXIST REC类型的undolog不会马上删除,可能有别的事务会访问



readView的概念


用于判断哪个版本对当前事务可见,从最新版本开始沿着版本链逐渐寻找老的版本,返回符合条件的版本。

creator_trx_id:当前事务ID。
m_ids:生成readView 时活跃的事务ID集合,已经启动但是未提交的事务ID列表
min_trx_id:当前活跃ID中最小的值
max_trx_id:生成readView 时InnoDB分配给下一个事务ID的值。
返回条件:
●trx_id == creator_trx_id
●trx_id < min_trx_id
●min_trx_id < trx_id < max_trx_id && m_ids包含trx_id



MVCC对MySQL的影响


提高了事务的并发度,提高数据库的性能

若有收获,就点个赞吧

关键字:网页设计论文html_电子商务网站硬件建设的核心是_网站查询器_免费做网站的平台

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: