欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

mysql 表锁——读锁和写锁

发布时间:2023/11/29 数据库 61 豆豆
生活随笔 收集整理的这篇文章主要介绍了 mysql 表锁——读锁和写锁 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

注意,

0、表的索引类型必须是InnoDB.相关链接:http://www.cnblogs.com/CyLee/p/5579672.html

1、如果你使用Navicat Premium,有可能会出现程序bug无法解锁。但在正常环境下是没问题的

2、存储过程里不允许使用锁

3、phpmyadmin是每次刷新都会重新链接一次,所以也不适合测试多会话(SESSION)

4、互联网时代不太可能使用到表锁,通常是使用行锁,除非erp系统之类的内部系统

 

读锁:所有的会话只能进行SELECT语句查询

LOCK TABLE [TABLE_NAME] READ

SELECT * FROM TABLE_NAME;

INSERT INTO TABLE_NAME () VALUES (); #一直等待,直到解锁或者超时

写锁:只有当前会话能增删改查,其他会话无法任何操作

LOCK TABLE [TABLE_NAME] WRITE

 解锁:

UNLOCK TABLES #常规解锁LOCO TABLE [TABLE_NAME] READ #再一次锁上,会解除上一次被拦截的对象。然后继续拦截LOCO TABLE [TABLE_NAME] WRITE #再一次锁上,会解除上一次被拦截的对象。然后继续拦截

 

总结

以上是生活随笔为你收集整理的mysql 表锁——读锁和写锁的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。