1.创建表:
MySQL中的表读写锁案例
MySQL中的表读写锁案例
2.如何给增加表锁:
MySQL中的表读写锁案例
3.如何释放表锁:
MySQL中的表读写锁案例
4-1.案例模拟(读锁):
MySQL中的表读写锁案例
MySQL中的表读写锁案例
MySQL中的表读写锁案例
MySQL中的表读写锁案例
总结:给表加读锁时,对应的session给表加读锁之后,可以查询该表的数据,但是不能更新该表的数据,也不能查询其他没有加锁的表,其他的session能查询加锁表和查询和更新其他的未锁定的表的数据,但更新加锁表的数据操作会阻塞,直到对应的表解锁才能继续执行

4-2.案例模拟(写锁):
MySQL中的表读写锁案例
MySQL中的表读写锁案例
MySQL中的表读写锁案例
MySQL中的表读写锁案例
总结:给表加写锁时,对应的session给表加读锁之后,可以查询和更新该表的数据,但是不能查询其他的表,其他的session能查询其他的表的数据,但是对于锁定的表不能执行查询和更新操作,将会被阻塞,需要等待锁被释放。

5.案例结论:
MyISAM存储引擎在执行查询前,会自动给涉及的所有表加读锁,在执行更新数据操作的前,会自动给涉及的表加写锁。MySQL的表级锁有两种模式:一种是表共享读锁,另外一种是表独占写锁。
对于MyISAM对表进行的操作,会有以下情况:

1、对MyISAM表的读操作(加读锁) ,不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其它进程的写操作。
2、对MyISAM表的写操作(加写锁) ,会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的 读写操作

简而言之,就是读锁会阻塞写,但是不会堵塞读。而写锁则会把读和写都堵塞

相关文章:

  • 2021-05-27
  • 2022-12-23
  • 2021-10-16
  • 2021-06-26
  • 2022-12-23
  • 2022-12-23
  • 2022-02-11
猜你喜欢
  • 2021-08-11
  • 2022-12-23
  • 2021-06-29
  • 2022-12-23
  • 2022-01-12
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案