mysql的行锁加在哪个位置

编程入门 行业动态 更新时间:2024-10-08 00:27:41

mysql的行锁<a href=https://www.elefans.com/category/jswz/34/1717530.html style=加在哪个位置"/>

mysql的行锁加在哪个位置

MySQL的数据锁 加在哪?MySQL的数据锁 加在哪?

此篇文章探讨MySQL数据库的锁,讨论MySQL各种语句将如何加锁,以及加锁的“效果”,主要针对默认的InnoDb引擎。基于MySQL5.6之后的版本。

有心力的可以直接看MySQL官方文档,说的更为详细:14.7.3由InnoDB中的不同SQL语句设置的锁

锁分类

按类型分,MySQL有锁:

行锁,最普通的锁,其实是加在索引上的锁。

表锁,直接加在整张表的锁,一旦上锁整张表的操作都会比较锁。

间隙锁,又称GAP锁,用于在涉及范围查询时给莫须有的位置加锁,防止并发插入等操作出现数据不一致(诸如幻读)的问题。间隙锁之间是不会冲突的。行锁与Gap锁合称Next-Key锁。间隙锁只能锁住间隙,即间隙锁不能指定具体的数据范围,将会锁上整个间隙。

所有的加锁对象除去索引便是表锁,MySQL不存在数据本身加锁一说,即,如果WHERE语句不走索引,则只能加表锁。

间隙锁不会存在于RC隔离级别中。

按模式分,MySQL有5种锁:

InnoDB 实现了以下两种类型的行锁:

共享锁(S):允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。

排他锁(X):允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和排他写锁。

为了允许行锁和表锁共存,实现多粒度锁机制,InnoDB 还有两种内部使用的意向锁(Intention Locks),这两种意向锁都是表锁

更多推荐

mysql的行锁加在哪个位置

本文发布于:2024-02-19 19:02:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765537.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:加在   位置   mysql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!