利用花生壳做网站,九江商城网站建设,网站开发系统的可行性研究报告,商标注册网app表锁和行锁
表锁#xff1a;一锁锁整张表#xff0c;mysql中锁定颗粒度最大的一种#xff0c;针对非索引字段加的锁。MyISAM和InnoDb都支持。
行锁#xff1a;一锁只锁整行#xff0c;锁定颗粒度最小#xff0c;针对索引字段加的锁。MyISAM不支持#xff0c;InnoDb支持…表锁和行锁
表锁一锁锁整张表mysql中锁定颗粒度最大的一种针对非索引字段加的锁。MyISAM和InnoDb都支持。
行锁一锁只锁整行锁定颗粒度最小针对索引字段加的锁。MyISAM不支持InnoDb支持。
PS行锁是针对索引字段加的锁如果where没有命中索引的话可能会加表锁。
行锁的类型
记录锁单个记录的锁只能锁住已存在的数据
间隙锁锁定一个范围的行记录不包括他本身可以避免这个范围内插入数据。当使用的条件查询是范围时会使用间隙锁。
临键锁锁定一个范围的行记录包括他本身。
PS在InnoDb默认的可重复读的隔离级别下默认使用的是临键锁如果去操作的索引是主键索引或者唯一索引会优化为记录锁。
共享锁和排他锁
也叫读写锁行锁和表锁都有共享锁和排他锁。
共享锁读锁事务在读取记录时获取的锁多个事务之间可以共享。
排他锁写锁事务在修改记录时获取的锁多个事务之间不能是互斥的不能共享。
意向锁
意向锁也分行级意向锁和表级意向锁用来判断有没有被加锁。
意向共享锁在加共享锁之前要先获取意向共享锁。
意向排他锁在加排他锁之前要先获取意向排他锁。