MySql
文章平均质量分 73
mysql的相关
xinCode79
热爱编程
展开
-
MVCC和行锁的实现
MVCC,即多版本并发控制,是InnoDB机制中的一种用来解决读写冲突的无锁并发机制。我们可以简单认为MVCC式行锁的变种。在表锁中我们的读写是阻塞的,基于提升并发性能的考虑,MVCC一般读写是不阻塞的(很多情况避免了加锁的操作)。MVCC解决了脏读和不可重复读的问题,但是在某些情况仍然没有解决幻影读的问题。这就是为什么我们要引入接下来的邻键锁Next-Key Locks。原创 2023-07-15 16:55:44 · 140 阅读 · 0 评论 -
数据库事务
如A给B转账,不论转账的事务操作是否成功,其两者的存款总额不变(这是业务逻辑的一致性,至于数据库关系约束的完整性就更好理解了)。(完成的事务是系统永久的部分,对系统的影响是永久性的,该修改即使出现致命的系统故障也将一直保持)● ACID是数据库事务执行的四大基本要素,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。○ 隔离性(Isolation):多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。原创 2023-07-14 15:54:58 · 68 阅读 · 0 评论 -
MVCC的实现
当你执行select *之后,在A与B事务中都会返回4条一样的数据,这是不用想的,RR隔离级别下当执行普通的select查询时,innodb默认会执行快照读,相当于就是给你目前的状态找了一张照片,以后执行select 的时候就会返回当前照片里面的数据,当其他事务提交了也对你不造成影响,和你没关系,这就实现了可重复读,那这个照片是什么时候生成的呢?使用MVCC多版本并发控制比锁定模型的主要优点是在MVCC里, 对检索(读)数据的锁要求与写数据的锁要求不冲突, 所以读不会阻塞写,而写也从不阻塞读。原创 2023-07-12 15:57:23 · 96 阅读 · 0 评论 -
MySql之查看执行计划
mysql执行计划原创 2023-07-14 15:44:32 · 2097 阅读 · 1 评论