Mysql-锁/隔离级别
锁
1.共享锁:只要有一个人(事务或线程)在查询,其他人就都不能改,要照顾少数
下面是将所有性别是男的数据都加上共享锁
select * from table where sex='男' lock in share mode
2.排他锁:只要有一个人(事务或线程)在用(增删改差),其他人就不能用
下面是将所有性别是男的数据都加上排他锁
select * from table where sex='男' for update
3.意向锁:个人理解说意向锁,不如说成是个标识符,如果标识符存在,就说明该表中的一行或者多行数据正在被其他事务使用,当前事务不能对该表加锁,如果标识符不存在,则说明表中没有任何一条数据被其他事务使用,既然不存在,那么其他事物就可以对该表加锁了,然后操作该表里的任意数据
读操作
快照读:单一的select * from 表 where条件
当前读:读的是最新的数据,读之前都需要加锁,增删改和上文的加锁都是当前读
隔离级别
查看mysql的默认隔离级别执行如下语句:select @@tx_isolation
1.不可重复读:Read Committed保证对读取到的记录加锁 (记录锁),存在幻读现象。
2.可重复读:Repeatable Read保证对读取到的记录加锁 (记录锁),同时保证对读取的范围加锁,新的满足查询条件的记录不能够插入 (间隙锁),不存在幻读现象。
幻读:
解释1针对结果集.事务A对结果集查询,显示出2条记录,之后事务B插入相同条件的记录,然后事务A再次用相同条件查询,结果显示出3条记录,和第一次查询的数据不一致
解释2.事务A在插入事先检测不存在的记录时,惊奇的发现这些数据已经存在了,(事务A检测完之后事务B正好插入)之前的检测读获取到的数据如同鬼影一般。
网上支持解释2的通常都自己觉得解释1是错误的,不过我个人看来两个解释还真没什么区别。。。
Mysql-锁/隔离级别相关推荐
- mysql事务隔离级别之锁实现原理,脏读、不可重复读、幻读出现原因及解决方案
mysql事务隔离级别原理 观看了很多网上的博客,挺令人伤心,很难找到想要的答案... 一:所需知识 1,mysql中的锁 1.1,读锁(共享锁) 规则:若事务1对数据对象A加上读锁,则事务1只能读A ...
- mysql的隔离级别_MySQL的四种事务隔离级别
一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...
- Mysql事务隔离级别及MVCC(多版本并发控制)
一.MySQL事务隔离级别 先注明一点:以下讨论都是在多事务并发的情境下讨论的 事务的特性(InnoDB引擎才有事务): ACID 原子性:一个事务不可再分割,要么都执行要么都不执行 一致性:一个事务 ...
- mysql什么隔离级别最好_面试必问的 Mysql 四种隔离级别,看完吊打面试官
什么是事务 事务是应用程序中一系列严密的操做,全部操做必须成功完成,不然在每一个操做中所做的全部更改都会被撤消.也就是事务具备原子性,一个事务中的一系列的操做要么所有成功,要么一个都不作.sql 事务 ...
- mysql 秒杀 隔离级别_MySQL 四种隔离级别详解,看完吊打面试官
什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...
- mysql mvcc 隔离级别_关于 Mysql 四种隔离级别中 Lock 和 MVCC 的关系
读写锁 共享锁(share lock)| 读锁(read lock) 读锁是共享的,或者说是相互不阻塞的.多个客户在同一时刻可以同时读取同一个资源,而互不干扰 SELECT ... LOCK IN S ...
- mysql spring隔离级别_MySQL事务与Spring隔离级别实现
1.事务具有ACID特性 原子性(atomicity):一个事务被事务不可分割的最小工作单元,要么全部提交,要么全部失败回滚. 一致性(consistency):数据库总是从一致性状态到另一个一致性状 ...
- mysql 默认事务隔离级别_上个厕所的功夫,搞懂MySQL事务隔离级别
"隔离级别" 出于MySQL四大特性(ACID)中的"I",也就是隔离性.目的是实现数据.事务一致性"C". MySQL在多线程并发场景下, ...
- mysql 事务 隔离级别_MySQL的四种事务隔离级别
https://www.cnblogs.com/huanongying/p/7021555.html 本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的 ...
- SpringCloud工作笔记054---事物处理_MySQL的四种事务隔离级别_以及修改Mysql默认隔离级别
JAVA技术交流QQ群:170933152 Mysql修改默认隔离级别: MySQL mysql默认的事务处理级别是'REPEATABLE-READ',也就是可重复读 1.查看当前会话隔离级别 sel ...
最新文章
- Android Studio 3.0+ Record Espresso Test 自动化测试
- 掌握这几种平面设计思维类型,让你设计水平上新台阶
- 在Windows平台如何选择C语言编译器?
- Linux下的Keyboard子系统
- python新建文件夹口令_Python 口令保管箱
- Sublime Text插件列表
- LeetCode 848. 字母移位(前缀和+取模)
- linux用户类型分类,信息安全技术题库:SELinux安全上下文主要包括用户、角色、类型、层次和分类字段。( )...
- 使用JVM钩子函数关闭资源
- PACPerformance
- 【离散数学】集合论 第三章 集合与关系(4) 集合的归纳定义、归纳证明、数学归纳法第一/二原理
- mysql 优化面试题
- 电商常见业务场景分析思路(持续更新中......)
- 一款非常萌的桌面工具---bongo cat mver0.1.6 附使用教程
- 耗资52亿美元,历时15年,人类有史以来建造的最复杂机器
- STM32MP157移植Qt5.12.10
- 京东商品详情接口,京东详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,京东APP详情,京东api接口,京东历史价格数据接口代码对接分享
- Tomcat启动之后遇到“ran out of the normal time range, it consumed [2000] milliseconds.”?
- [洛谷P3527] [POI2011]MET-Meteors
- 如何使投资收益最大化?