MySQL篇---第十篇

系列文章目录


文章目录

  • 系列文章目录
  • 一、说说悲观锁和乐观锁
  • 二、怎样尽量避免死锁的出现?
  • 三、使用 MySQL 的索引应该注意些什么?


一、说说悲观锁和乐观锁

悲观锁
说的是数据库被外界(包括本系统当前的其他事物以及来自外部系统的事务处理)修改保持着保守
态度,因此在整个数据修改过程中,将数据处于锁状态。悲观的实现往往是依靠数据库提供的锁机
制,也只有数据库层面提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统汇总实
现了加锁机制,也是没有办法保证系统不会修改数据。
在悲观锁的情况下,为了保证事务的隔离性,就需要一致性锁定读。读取数据时给加锁,其它事务
无法修改这些数据。修改删除数据时也要加锁,其它事务无法读取这些数据。
乐观锁
相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机
制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事
务而言,这样的开销往往无法承受。
而乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本(Version)记录机制实
现。何谓数据版本?即

你可能感兴趣的:(mysql,oracle,数据库)