隔离级别与锁机制

事务及其ACID属性

A:原子性,要么执行,要么不执行。
C:一致性,状态的一致。追求的最终结果。
I:隔离性,不受外部并发操作的影响。
D:持久性,数据修改是永久性的。

并发事务带来的问题

  • 更新丢失或者脏写
    由于隔离性的影响,会导致最后的更新覆盖了其它事务做的更新
  • 脏读
    一个事务读到另外一个事务修改未提交的数据
  • 不可重读
    一个事务相同的查询语句不同时刻读出的结果不一致。不符合隔离性。
  • 幻读
    一个事务读到了另一个事务提交的新增的数据,不符合隔离性。

事务隔离级别

读未提交
读已提交:解决脏读
可重复读:解决不可重复读(MVCC快照读实现)
可串行化:解决幻读

锁分类

  • 性能上分乐观锁与悲观锁。
  • 数据库操作类型分为读锁与写锁(都属于悲观锁)。
  • 对数据库粒度分为表锁和行锁。(间隙锁与临键锁)
    tips:InnoDB与MYISAM最大的不同点
    1.InnoDB支持事务。
    2.InnoDB支持行级锁。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容