MySQL锁Shared and Exclusive Locks(共享锁与排他锁)它们都是标准的行级锁。共享锁(S)共享锁也称为读锁,读锁允许多个连接可以同一时刻并发的读取同一资源,互不干扰;排他锁(X)排他锁也称为写锁,一个写锁会阻塞其他的写锁或读锁,保证同一时刻只有一个连接可以写入数据,同时防止其他用户对这个数据的读写。注意:所谓共享锁、排他锁其实均是锁机制本身的策略,通过这两种策略对锁做了区分。Intention Locks(意向锁)InnoDB 支持多粒度锁(锁粒度可分为行锁和表锁),允许行锁和表锁共存。例如,一个语句,例如 LOCK TABLES…WRITE 接受指定表上的独占锁。为了实现多粒度级别的锁定,InnoDB使用了意图锁。意向锁:表级别的锁。先提前声明一个意向信号标志,并获取表级别的意向锁(共享意向锁 IS 或排他意向锁 IX),如果获取成功,则稍后将要或正在(才被允许),对该表的某些行加锁(S或X)了。(除了 LOCK TABLES … WRITE,会锁住表中所有行,其他场景意向锁实际不锁住任何行)举例来说:SELECT ... LOCK IN SHARE MODE,要获取IS锁;An intention shared lock (IS)SELECT ... FOR UPDATE ,要获取IX锁;An intention exclusive lock (IX)