数据库锁

  • 介绍

本文介绍有关数据库锁的内容。

  • 悲观锁

select * from test for update 执行该SQL语句后,会把所查询到的数据行上加锁;如果再结合事务的话,就可以实现在多个进程中的数据同步。

使用该语句时,需要考虑一个超时的问题。

  • 乐观锁
  • 读锁(共享锁)

所有的进程都只能对加锁对象进行读操作。下面以MySQL为例做测试:

lock tables student read; insert into student values (now(), "", "", "");

如果执行上面的两条SQL,就会得到这样的错误提示:[Err] 1099 - Table 'student' was locked with a READ lock and can't be updated

  • 写锁(排它锁、独占所)

只有加锁进程可以写入(或者读),其他进程不能做读、写操作。

发表评论

电子邮件地址不会被公开。 必填项已用*标注