位置: 编程技术 - 正文
推荐整理分享MySQL语句加锁的实现分析(mysql 加锁处理分析),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql加锁规则,mysql 加锁处理分析,mysql锁怎么用,mysql加表锁语句,mysql加表锁语句,mysql 加锁处理分析,mysql 加锁处理分析,mysql加锁语法,内容如对您有帮助,希望把文章链接给更多的朋友!
摘要: MySQL两条SQL语句锁的分析
看一下下面的SQL语句加什么锁
(1)id 是不是主键
(2)当前系统的隔离级别是什么
(3)id列如果不是主键,那么id列上有索引吗
(4)id列上如果有二级索引,那么这个索引是二级索引吗
(5)两个SQL的执行计划是什么?索引扫描还是全表扫描
实际的执行计划需要根据MySQL的输出为准
组合一:id列是主键,RC隔离级别组合二:id列是二级唯一索引,RC隔离级别组合三:id列是二级非唯一索引,RC隔离级别组合四:id列没有索引,RC隔离级别组合五:id列是主键,RR隔离级别组合六:id列是二级唯一索引,RR隔离级别组合七:id列是二级非唯一索引,RR隔离级别组合八:id列上没有索引,RR隔离级别
Serializable隔离级别
在RR RC隔离级别下,SQL1:select 均不加锁,采用的是快照读;以下仅讨论SQL2:delete操作的加锁Percona
组合一:id主键+RCPercona
MySQL
组合二:id唯一索引+RC在唯一索引上的更新需要两个X锁,一个对应唯一索引id= 记录,一个对应于聚簇索引name='d'的记录Percona
MySQL
组合三:id非唯一索引+RCID列为普通索引,那么对应的所有满足SQL查询条件的记录,都会被加锁;同时,这些记录在主键索引上的记录,也会被加锁Percona
MySQL
组合四:id无索引+RCPercona
MySQL
组合五:id主键+RR参考 组合一
组合六:id唯一索引+RR参考 组合二
组合七:id非唯一索引+RRPercona
MySQL
组合八:id无索引+RRPercona
MySQL
组合九:Serializable
针对前面提到的简单的SQL,最后一个情况:Serializable隔离级别。对于SQL2:delete from t1 where id = ; 来说,Serializable隔离级别与Repeatable Read隔离级别完全一致,因此不做介绍。
Serializable隔离级别,影响的是SQL1:select * from t1 where id = ; 这条SQL,在RC,RR隔离级别下,都是快照读,不加锁。但是在Serializable隔离级别,SQL1会加读锁,也就是说快照读不复存在,MVCC并发控制降级为Lock-Based CC。
结论:在MySQL/InnoDB中,所谓的读不加锁,并不适用于所有的情况,而是隔离级别相关的。Serializable隔离级别,读不加锁就不再成立,所有的读操作,都是当前读。
详解mysql中的冗余和重复索引 mysql允许在相同列上创建多个索引,无论是有意还是无意,mysql需要单独维护重复的索引,并且优化器在优化查询的时候也需要逐个地进行考虑,这会影
Mysql中explain作用详解 一、MYSQL的索引索引(Index):帮助Mysql高效获取数据的一种数据结构。用于提高查找效率,可以比作字典。可以简单理解为排好序的快速查找的数据结构
MySQL中or语句用法示例 1.mysql中or语法的使用,在mysql语法中or使用注意点。项目遇到坑,遍历发放奖励数据查询错误!!!$sql='SELECT*FROM`vvt_spread_doubleegg_exchange_award`ASpWHEREp.`act_t
标签: mysql 加锁处理分析
本文链接地址:https://www.jiuchutong.com/biancheng/348296.html 转载请保留说明!友情链接: 武汉网站建设