MySql 读写锁

读锁:共享锁 readLock

写锁:独占锁 writeLock 不允许其他事务对当前数据进行修改和读取操作

 

LOCK TABLES,锁表(或者视图)权限。

  • 可以锁住那些你拥有select权限的表,以防止其他session访问或者修改这个表。

  • 如果锁住视图,那么视图的所有基表都被锁住。

  • 如果锁住的表上有触发器,那么和这个触发器所有相关的表都被锁住。

  • 要锁住某张表的前提是要拥有表上select 权限。

 

lock table有如下两种表达方式:

  • lock table xxx read,只读方式锁住xxx,该表只能被select,不能被修改。如果在lock时,该表上存在事务,则lock语句挂起,直到事务结束。多个会话可以同时对表执行该操作。

  • lock table xxx write,读写方式锁住xxx,lock table的会话可以对表xxx做修改及查询等操作,而其他会话不能对该表做任何操作,包括select也要被阻塞。

1.加锁

lock tables test read; #读锁
lock tables test write; #写锁

2.解锁

unlock tables;

3.常用的一些命令

#1.关闭所有打开的表,强制关闭所有正在使用的表
flush tables

#2.关闭所有打开的表并使用全局读锁锁定所有数据库的所有表
flush tables with read lock;

参考https://www.itbulu.com/show-mysql-lock.html

4.配置

innodb_lock_wait_timeout 事务锁超时时间

SHOW GLOBAL VARIABLES LIKE 'innodb_lock_wait_timeout';
SET GLOBAL innodb_lock_wait_timeout=500;
SHOW GLOBAL VARIABLES LIKE 'innodb_lock_wait_timeout';
posted @   sunkaila  阅读(611)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示