欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Mysql 锁粒度_MySQL

程序员文章站 2022-04-28 21:58:05
...
表锁:

表锁是mysql 中最几本的锁策略,并且是开销最小的策略:它会锁定整张表。

一个用户在对表进行锁操作(增,删,改)前,首先要获得写锁,这会阻塞其他用户对该表的所有读写操作。只有没有写锁时,其他用户才能获得读锁,读锁之间是不相互阻塞的。

在特定的场景中,表锁也可能有良好的性能。例如:READ LOCAL 表锁支持某些类型的并发写操作。另外,写锁也比读锁有更高的优先级,因此,一个写锁的请求,可能会被插入到读锁队列的前面(写锁能插入到锁队列的前面,反之,读锁不能插入到写锁的前面);

尽管存储引擎可以管理自己的锁,Mysql本身还是会使用各种有效的锁来实现不同的目的。例如:服务器会为诸如 ALTER TABLE 之类的语句使用表锁,而忽略存储引擎的锁机制。

行级锁:

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

相关标签: 粒度