mysql数据库锁

共享锁(读锁)

共享锁语句:

select * from tableName lock in share mode
加入共享锁后,别的线程可以访问结果集,但不能对结果集使用排它锁(写锁),同理如果以使用排它锁(写锁),就会被阻塞。被加入共享锁后所有线程访问的都是同一个版本的数据。

排它锁(写锁)

排它锁语句:

select * from tableName for update
加入排它锁后,别的线程不能再对当前结果集添加任何类型的锁。同理如果数据集以实现排它锁,就会被阻塞。

意向锁(有大神在解释的详细点吗)

排它锁语句:

别看了意向锁是InnoDB自动加的。
意向共享锁(IS):表示事务准备给数据行加入共享锁,也就是说一个数据行加共享锁前必须先取得该表的IS锁
意向排他锁(IX):类似上面,表示事务准备给数据行加入排他锁,说明事务在一个数据行加排他锁前必须先取得该表的IX锁。
InnoDB行锁是通过给索引项加锁来实现的,即只有通过索引条件检索数据,InnoDB才使用行级锁,否则将使用表锁!

你可能感兴趣的:(mysql数据库锁)