mysql - 锁的认识

Posted acsii

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql - 锁的认识相关的知识,希望对你有一定的参考价值。

mysql 加锁方法;(大前提条件 :必须在事务中执行)
排它锁:(作用: 当对数据表添加排它锁时,各个事务之间对这个数据表的执行顺序就会形成一个队列 , 防止读到脏数据;)
1.显示加锁:
sql语句 :select * from table where key = ... for update;
注意事项 :查询条件如果是唯一键(或主键) 并走索引时则会添加行级锁 , 否则会对整个表加锁;
2.隐式加锁:
sql语句 :update table set ... where ...;
注意事项:当mysql执行更新语句时 只有当查询条件是唯一键(或主键)并走索引时,mysql 才会自动添加行级锁;

共享锁:(作用 : 当对数据表添加共享锁时 , 数据表的数据只能读取而不能修改和删除;)
sql语句 :select * from table where .... lock in share mode;
注意事项 :查询条件如果是唯一键(或主键) 并走索引时则会添加行级锁 , 否则会对整个表加锁;

以上是关于mysql - 锁的认识的主要内容,如果未能解决你的问题,请参考以下文章

多线程编程2.0——锁的相关认识

MySQL 的锁机制(A)

关于 InnoDB 锁的超全总结

149期MySQL行锁和表锁的含义及区别是什么?

Mysql全局锁和表级锁

Lock接口的认识和使用