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';
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律