怎么建设网站网站,wordpress全局变量,太原最新消息,淘宝代运营1个月多少钱1、共享排他锁 Shared and Exclusive Locks--共享锁#xff08;SLock#xff09;#xff0c;允许持有该锁的事务读取一行数据--排它锁#xff08;XLock#xff09;#xff0c;允许持有该锁的事务删除或者更新一行数据特性#xff1a;--行级锁--如果一个事务持有当前行的…1、共享排他锁 Shared and Exclusive Locks--共享锁SLock允许持有该锁的事务读取一行数据--排它锁XLock允许持有该锁的事务删除或者更新一行数据特性--行级锁--如果一个事务持有当前行的共享锁那么其他事务就可以获得该行的共享锁--如果一个事务持有当前行的排他锁那么其事务必须等待这个事务释放后才能持有加共享锁--Update、Delete语句 在 innoDB会自动给设计的数据集加上排它锁--普通Select语句是不会加任何锁--MySQL 8.0之前的写法 但是不支持NOWAIT\SKIP\LOCAKED等特性select * from xx where id xx LOCK IN SHARE MODE;--MySQL8.0开始支持select * from xx where id xx FOR SHARE;加排它锁--FOR Updateselect * from xx where id xx FOR UPDATE2、意向锁Intention Locks--未来的某一时刻事务需要加共享排它锁所以提前声明意向--意向共享锁intention shared lock简称IS:表示事务有意向对表中的某些行加共享锁--意向共享锁intention exclusive lock简称IX:表示事务有意向对表中的某些行加排他锁特性--表级锁--事务在请求S锁和X锁前需要先获得对应的IS、IX锁--意向锁不会阻塞全表扫描以前的任何请求3、记录锁Record Locks--用来封锁索引记录从而防止其他的事务针对同一条记录执行增删改操作4、间隙锁Gap Locks--在Repeatable-Read可重复读隔离级别下的锁机制用来封锁索引里面的间隙解决幻读问题--间隙键值在条件范围内但不存在的记录--包括索引记录之间的间隙第一条索引记录之前的范围最后一条索引记录之后的范围特性--要有索引--封锁的是索引里面的间隙防止其他事务在间隙中插入数据--解决幻读问题5、临键锁Next-Key Locks--记录锁和间隙锁的组合封锁索引记录和索引中的间隙--会封锁记录本身已经索引记录之前的区间即范围上一条记录记录本身--如果一个事务占用了索引记录R的共享排它锁则其他事务不能在记录R及之前的区间插入新的索引记录--InnoDB行锁默认用的就是临键锁6、插入意向锁Insert Intention Locks--由insert操作在插入行之前设置的一种间隙锁--多个事务在同一个索引同一个范围区检察露记录时候如果插入的位置不冲突就不会阻塞彼此7、自增锁AUTO-INC Locks--特殊的表级锁--专门针对插入AUTO_INCREMENT类型的列的事务--最简单情况如果一个事务正在往表里中插入记录其他事务的插入必须等待一边第一个事务插入的行的值是连续性的--innodb_autoinc_lock_mode 可以用来调整锁的算法8、谓词锁Predicate Locks--用于空间索引的锁