欢迎使用CSDN-markdown编辑器

来源:互联网 发布:js e.target.result 编辑:程序博客网 时间:2024/04/30 22:22

数据库锁策略

表锁(table lock)

表锁是MySQL中最基本的锁策略,并且是开销最小的策略。表锁会将整张表都锁定。用户在对表进行写操作(插入、删除、更新等)前,需要先获得写锁,这样会阻塞其他用户对该表的读写操作。只有没有写锁时,其他用户才能获得读锁,读锁之间是不相互阻塞的。
在某些场景中,表锁也可能表现出良好的性能。如,READ LOCAL表锁支持某些类型的并发写操作。写锁比读锁有更高的优先级,写锁请求可能会被插入到读锁队列的前面。
尽管存储引擎可以管理自己的锁,MySQL本身还是会使用各种有效的表锁来实现不同的目的。如,服务器会为ALTER TABLE之类的语句使用表锁,而忽略存储引擎的锁机制。

行级锁(row lock)

行级锁可以很大程度的支持并发处理(同时也带来了最大的锁开销)。在InnoDB和XtraDB,以及其他一些存储引擎中实现了行级锁。行级锁只在存储引擎层实现,而MySQL服务器层没有实现。服务器层完全不了解存储引擎中的锁实现。

0 0
原创粉丝点击