首页 > 代码库 > 数据库锁

数据库锁

一、锁机制的目的

  数据库是一个多用户操作的共享资源。当在多线程的操作下,很容易破坏一致性原则.而锁机制的目的就是确保数据的一致性。对于不同的数据库引擎,其锁机制实现方式有所不同,但其目的及原理相似。

二、锁的分类

2.1 基本分类

2.1.2 共享锁(Share Locks,即S锁)

   读锁(select)基本都是共共享锁,除非加上排它锁标识(for update).即相互不阻塞,多个用户同一时间可以读取同一资源而相互不干扰.mysql叫快照读

2.1.1 排它锁(Exclusive Locks,即X锁)

     写锁(insert update delete)都是排它锁.即一个写锁会阻塞其他的读锁和写锁.mysql叫当前读

2.2 按锁定粒度分类                     

2.2.1行级锁

2.2.2页级锁

2.2.3表级锁

2.3 按程序员的角度分类

2.3.1悲观锁

     依靠数据库的锁机制。

2.3.2乐观锁

     基于数据版本(version)记录机制实现。


数据库锁