Innodb引擎中锁与增删改查的关系
来源:互联网 发布:杨辉三角java规定行数 编辑:程序博客网 时间:2024/04/28 11:33
以下纯属个人总结,事务模式是repeatable read,有问题欢迎指正:
很重要的一点:尽管我们的SQL中使用了索引,但是如果该索引的区分数据度不高,在SQL执行时,原计划的锁可能升级为表锁(如一个索引有较多重复的数据)
- 查询(select)数据:select xxx from xxx where xxx for update
- where中没有使用索引,锁表
- where中使用索引且记录存在,锁记录(X锁)同时锁该记录所在数据页的数据,即锁区间(S锁)(一个页空间可能包含了多条数据,16K)
- where中使用索引且记录不存在,无锁
- 查询(select)数据:select xxx from xxx where xxx
- 快照读,无锁
- 查询(select)数据:select xxx from xxx where xxx lock in share mode
- 同select xxx from xxx where xxx for update,只是锁记录使用S锁
- 更改(update和delete)数据:
- 使用索引满足条件的记录存在,锁记录
- 使用索引满足条件的记录不存在,在该记录前后存在的记录间,加区间锁,锁区间(同时锁定左侧的边界记录,及左闭右开)(防止幻读的放生)
- 没有使用索引,锁表
- 添加(insert)数据:
- 存在表锁,阻塞
- 存在区间锁(范围锁),且索引列要插入的值在区间内,阻塞,否则不阻塞
- Innodb引擎中锁与增删改查的关系
- Hibernate中关联关系的CRUD(增删改查)
- Android中数据库的创建与增删改查操作
- JSP与数据库的增删改查
- php与mysql的增删改查
- GridView中常用的增删改查
- iOS中数据库的增删改查
- Python中列表的增删改查
- js中数组的增删改查
- Silverlight中利用EF处理多对多关系的增删改查的解决办法
- hibernate各种关系映射的增删改查
- Hibernate实现增删改查以及和JDBC的关系
- 13hibernate hibernate关联关系的CRUD(增删改查)
- mysql储存引擎,数据类型,增删改查
- 数据库中增删改查
- dom4j中增删改查
- EF中增删改查
- JDBC中增删改查
- 将屏幕上的内容输出到一个文本中
- 月薪一万在北京过的是什么样的生活
- linux的5个查找命令
- i2s音频总线
- ubuntu 64位系统 安装adobe pdf
- Innodb引擎中锁与增删改查的关系
- 如何向妻子解释面向对象设计(OOD)
- java CopyOnWriteArrayList的使用
- C语言获取图片的属性信息(转载)
- I2S总线协议
- 从一段html代码中获取Img标签
- 从HDFS看分布式文件系统的设计需求
- 软件开发中常见的十大系统瓶颈
- 一道考验你设计能力的C++编程题