【⾯试题】mysql实现事务的原理(MVCC)
回答思路:
1、先谈mysql架构
2、引出并发的场景以及事物的影响
3、为了解决并发引出MVCC
4、MVCC的具体实现原理
mysql的逻辑架构⼤概分为四层:
第⼀层: 服务层(为客户端服务)
为请求做连接处理,授权认证,安全等。
第⼆层:核⼼服务
⽐如查询解析,优化,缓存,内置函数。存储过程,触发器,视图等。对于第⼆层来说,所以跨存储引擎的功能都在这⼀层实现。
抖音小程序开发第三层:存储引擎mysql面试题sql
负责mysql中数据的存储和提取。服务器通过api与存储引擎通信,这些接⼝屏蔽了存储引擎之间的差异。也就是说,接⼝的存在,导致不同存储引擎的差异不会影响到上层查询过程。
架构分层之后,可以更好的理解⼀些问题,⽐如我们很关⼼的并发问题:mysql层⾯的并发控制,实际上是分为两种:
服务层的并发
简单的个人主页模板下载
存储引擎层的并发的
第四层:系统⽂件层,保存数据、索引、⽇志等。
事务隔离级别
深蓝最佳配表⼤家都知道数据库事务具备ACID特性,即Atomicity(原⼦性) Consistency(⼀致性), Isolation(隔离性), Durability(持久性)
原⼦性:要执⾏的事务是⼀个独⽴的操作单元,要么全部执⾏,要么全部不执⾏
汇编语言中换码指令⼀致性:事务的⼀致性是指事务的执⾏不能破坏数据库的⼀致性,⼀致性也称为完整性。⼀个事务在执⾏后,数据库必须从⼀个⼀致性状态转变为另⼀个⼀致性状态。
隔离性:多个事务并发执⾏时,⼀个事务的执⾏不应影响其他事务的执⾏,SQL92规范中对隔离性定义了不同的隔离级别:
读未提交(READ UNCOMMITED)->读已提交(READ COMMITTED)->可重复读(REPEATABLE READ)->序列化(SERIALIZABLE)。隔离级别依次增强,但是导致的问题是并发能⼒的减弱。
事务隔离级别msgbox最大长度
MYSQL 事务⽇志
MVCC实现
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论