Mysql中的那些锁

表锁和行锁

表锁:一锁锁整张表,mysql中锁定颗粒度最大的一种,针对非索引字段加的锁。MyISAM和InnoDb都支持。

行锁:一锁只锁整行,锁定颗粒度最小,针对索引字段加的锁。MyISAM不支持,InnoDb支持。

PS:行锁是针对索引字段加的锁,如果where没有命中索引的话,可能会加表锁。

行锁的类型

记录锁:单个记录的锁,只能锁住已存在的数据,

间隙锁:锁定一个范围的行记录,不包括他本身,可以避免这个范围内插入数据。当使用的条件查询是范围时,会使用间隙锁。

临键锁:锁定一个范围的行记录,包括他本身。

PS:在InnoDb默认的可重复读的隔离级别下,默认使用的是临键锁,如果去操作的索引是主键索引或者唯一索引,会优化为记录锁。

共享锁和排他锁

也叫读写锁,行锁和表锁都有共享锁和排他锁。

共享锁:读锁,事务在读取记录时获取的锁,多个事务之间可以共享。

排他锁:写锁,事务在修改记录时获取的锁,多个事务之间不能是互斥的,不能共享。

意向锁

意向锁也分行级意向锁和表级意向锁,用来判断有没有被加锁。

意向共享锁:在加共享锁之前,要先获取意向共享锁。

意向排他锁:在加排他锁之前,要先获取意向排他锁。

相关推荐

  1. Mysql那些

    2024-03-30 23:34:02       19 阅读
  2. Mysql那些索引

    2024-03-30 23:34:02       17 阅读
  3. MySQL

    2024-03-30 23:34:02       7 阅读
  4. MySQL(一)

    2024-03-30 23:34:02       18 阅读
  5. MySQL45讲 -- MYSQL

    2024-03-30 23:34:02       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 23:34:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 23:34:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 23:34:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 23:34:02       18 阅读

热门阅读

  1. axios请求类型是文件流怎么显示报错信息

    2024-03-30 23:34:02       14 阅读
  2. UI 神器 - Vue3 中如何使用 element-plus

    2024-03-30 23:34:02       18 阅读
  3. Composer常见错误解决

    2024-03-30 23:34:02       22 阅读
  4. 【LeetCode热题100】20. 有效的括号(栈)

    2024-03-30 23:34:02       21 阅读
  5. 《leetcode hot100》2. 两数相加

    2024-03-30 23:34:02       17 阅读
  6. 【算法笔记】 树形DP算法总结

    2024-03-30 23:34:02       23 阅读
  7. Linux中定时任务的配置及注意事项

    2024-03-30 23:34:02       15 阅读