MYSQL的锁分三种类型
一、表级锁
表级锁分两种类型
1.读锁
statment1
//读锁
mysql> lock table tablename read;
此时statment1,stament2 都只能读这个表的内容 而不能修改表的内容;
但 区别在于 statment1修改该表数据会被拒绝
statment2 则会处于阻塞状态,这个状态中 如果 statment1解锁了,则会立即执行statment2操作
//解锁
mysql> unlock table;
2.写锁
mysql> lock table tablename write;
写锁时这个表的读和写 只有当前statment才可以操作
二、行级锁
分两种
行级锁 需要用事务包裹住
start transtraction
xxx锁
commit
1select XXX for update
排它锁:只允许当前statment对其上锁,查询的时候加上for update 可以有效的避免脏读 因为如果有人对其上锁,你再上锁时会处于阻塞状态
2select XXX lock in share mode
共享锁:允许其他的statment对其上锁,所以有时候自己都没办法修改
三、自己查
以上内容是自己查询资料和实际操作得出来的结果
你们可以参考:
http://blog.csdn.net/xifeijian/article/details/20313977
http://www.cnblogs.com/liushuiwuqing/p/3966898.html