MySQL的MVCC、隔离级别、乐观锁与悲观锁的笔记汇总

作者:admin 发布时间:2020-09-16 00:18:08 浏览:1126次
没事在网上瞎逛,发现几篇非常不错的MySQL系列学习笔记,这里就先做个汇总,希望对后来者有帮助。 正确的理解MySQL的MVCC及实现原理

MVCC能解决什么问题,好处是?

数据库并发场景有三种,分别为: 读-读:不存在任何问题,也不需要并发控制 读-写:有线程安全问题,可能会造成事务隔离性问题,可能遇到脏读,幻读,不可重复读 写-写:有线程安全问题,可能会存在更新丢失问题,比如第一类更新丢失,第二类更新丢失 MVCC带来的好处是? 多版本并发控制(MVCC)是一种用来解决读-写冲突的无锁并发控制,也就是为事务分配单向增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照。 所以MVCC可以为数据库解决以下问题 在并发读写数据库时,可以做到在读操作时不用阻塞写操作,写操作也不用阻塞读操作,提高了数据库并发读写的性能 同时还可以解决脏读,幻读,不可重复读等事务隔离问题,但不能解决更新丢失问题 小结一下咯 总之,MVCC就是因为大牛们,不满意只让数据库采用悲观锁这样性能不佳的形式去解决读-写冲突问题,而提出的解决方案,所以在数据库中,因为有了MVCC,所以我们可以形成两个组合: MVCC + 悲观锁 MVCC解决读写冲突,悲观锁解决写写冲突 MVCC + 乐观锁 MVCC解决读写冲突,乐观锁解决写写冲突 这种组合的方式就可以最大程度的提高数据库并发性能,并解决读写冲突,和写写冲突导致的问题 完整版请移步:https://blog.csdn.net/SnailMann/article/details/94724197

正确的理解MySQL的事务和隔离级别

以下是目录 事务的ACID理论 什么是ACID理论? ACID的四个特性 ACID中C与CAP定理中C的区别? MySQL事务的隔离级别 事务操作可能会出现的数据问题 事务操作可能出现的更新丢失问题 事务的隔离级别 标准与实现 小结 MySQL SQL命令模拟测试 相关问题 InnoDB的RR级别下其实有部分场景还是会出现不可重复读问题的 InnoDB的RR级别下是如何避免幻读的? Redis的事务可以实现一致性吗? 完整版请移步:https://blog.csdn.net/SnailMann/article/details/88299127

正确的理解MySQL的乐观锁,悲观锁与MVCC

以下是目录 前提概念 数据库并发的三种场景 乐观锁和悲观锁的澄清 悲观锁 什么是悲观锁? 悲观锁的实现 悲观锁的优点和缺点 乐观锁 什么是乐观锁? 乐观锁的实现 乐观锁的优缺点 MVCC多版本并发控制 什么是MVCC? 总结 乐观锁和悲观锁的抉择 OCC,PCC,MVCC 完整版请移步:https://blog.csdn.net/SnailMann/article/details/88388829

如需转载请保留本文出处: https://zhe94.com/782.html

上一篇:快速建站之前言:如何建立一个自己的网站
下一篇:免费的淘宝客程序有哪些?导购、代理和返利版本哪种好?