表锁:

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

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

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

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

行级锁:

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

相关文章:

  • 2022-12-23
  • 2022-01-21
  • 2021-07-17
  • 2021-03-06
  • 2021-04-13
  • 2021-09-14
  • 2021-11-16
猜你喜欢
  • 2021-07-23
  • 2021-09-21
  • 2022-12-23
  • 2021-09-24
  • 2020-12-23
  • 2022-12-23
相关资源
相似解决方案