MySQL行级锁
来源:互联网 发布:淘宝买到盗版书怎么办 编辑:程序博客网 时间:2024/05/18 00:04
行级锁是MySQL中粒度最小的一种锁,他能大大减少数据库操作的冲突。但是粒度越小,实现的成本也越高。MYISAM引擎只支持表级锁,而INNODB引擎能够支持行级锁,下面的内容也是针对INNODB行级锁展开的。
共享锁又称读锁,是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁。
如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。
用法
SELECT ... LOCK IN SHARE MODE;
在查询语句后面增加LOCK IN SHARE MODE,Mysql会对查询结果中的每行都加共享锁,当没有其他线程对查询结果集中的任何一行使用排他锁时,可以成功申请共享锁,否则会被阻塞。其他线程也可以读取使用了共享锁的表,而且这些线程读取的是同一个版本的数据。
排他锁:
INNODB的行级锁有共享锁(S LOCK)和排他锁(X LOCK)两种。共享锁允许事物读一行记录,不允许任何线程对该行记录进行修改。排他锁允许当前事物删除或更新一行记录,其他线程不能操作该记录。
共享锁:共享锁又称读锁,是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁。
如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。
用法
SELECT ... LOCK IN SHARE MODE;
在查询语句后面增加LOCK IN SHARE MODE,Mysql会对查询结果中的每行都加共享锁,当没有其他线程对查询结果集中的任何一行使用排他锁时,可以成功申请共享锁,否则会被阻塞。其他线程也可以读取使用了共享锁的表,而且这些线程读取的是同一个版本的数据。
排他锁:
排他锁又称写锁,如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。
用法
SELECT ... FOR UPDATE;
在查询语句后面增加FOR UPDATE,Mysql会对查询结果中的每行都加排他锁,当没有其他线程对查询结果集中的任何一行使用排他锁时,可以成功申请排他锁,否则会被阻塞。
阅读全文
0 0
- MYSQL 行级锁
- MySQL行级锁
- mysql行级锁
- MySQL行级锁
- MySQL行级锁
- MySQL行级锁
- mysql行级锁测试
- MySQL表级锁与行级锁
- MySql之行级锁
- MySQL行级锁、表级锁、页级锁
- MySQL行级锁、表级锁、页级锁
- mysql for update行级锁
- MySQL行级锁、表级锁、页级锁
- MySQL 行级锁 表级锁
- MySQL行级锁、表级锁、页级锁
- mysql 行级锁的使用
- MySQL表级锁和行级锁
- Mysql
- 欢迎使用CSDN-markdown编辑器
- 用node-webkit把web应用打包成桌面应用
- Educational Codeforces Round 25 A. Binary Protocol
- Java小项目---租车管理系统
- win7下 MongoDB数据库搭建
- MySQL行级锁
- mysql查看和修改数据库表字段编码格式及添加删除外键操作
- MUI 使用ES6语法时在手机上运行报错简单处理方法
- 写个责任链模式(混用观察者)
- NGUI中UIPopupList的创建与使用
- java获得项目绝对路径
- 感谢爱测未来,零基础的我的实习期是这么过来的
- truncate 与delete
- 3:颜色