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-锁/隔离级别相关推荐

  1. mysql事务隔离级别之锁实现原理,脏读、不可重复读、幻读出现原因及解决方案

    mysql事务隔离级别原理 观看了很多网上的博客,挺令人伤心,很难找到想要的答案... 一:所需知识 1,mysql中的锁 1.1,读锁(共享锁) 规则:若事务1对数据对象A加上读锁,则事务1只能读A ...

  2. mysql的隔离级别_MySQL的四种事务隔离级别

    一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...

  3. Mysql事务隔离级别及MVCC(多版本并发控制)

    一.MySQL事务隔离级别 先注明一点:以下讨论都是在多事务并发的情境下讨论的 事务的特性(InnoDB引擎才有事务): ACID 原子性:一个事务不可再分割,要么都执行要么都不执行 一致性:一个事务 ...

  4. mysql什么隔离级别最好_面试必问的 Mysql 四种隔离级别,看完吊打面试官

    什么是事务 事务是应用程序中一系列严密的操做,全部操做必须成功完成,不然在每一个操做中所做的全部更改都会被撤消.也就是事务具备原子性,一个事务中的一系列的操做要么所有成功,要么一个都不作.sql 事务 ...

  5. mysql 秒杀 隔离级别_MySQL 四种隔离级别详解,看完吊打面试官

    什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...

  6. mysql mvcc 隔离级别_关于 Mysql 四种隔离级别中 Lock 和 MVCC 的关系

    读写锁 共享锁(share lock)| 读锁(read lock) 读锁是共享的,或者说是相互不阻塞的.多个客户在同一时刻可以同时读取同一个资源,而互不干扰 SELECT ... LOCK IN S ...

  7. mysql spring隔离级别_MySQL事务与Spring隔离级别实现

    1.事务具有ACID特性 原子性(atomicity):一个事务被事务不可分割的最小工作单元,要么全部提交,要么全部失败回滚. 一致性(consistency):数据库总是从一致性状态到另一个一致性状 ...

  8. mysql 默认事务隔离级别_上个厕所的功夫,搞懂MySQL事务隔离级别

    "隔离级别" 出于MySQL四大特性(ACID)中的"I",也就是隔离性.目的是实现数据.事务一致性"C". MySQL在多线程并发场景下, ...

  9. mysql 事务 隔离级别_MySQL的四种事务隔离级别

    https://www.cnblogs.com/huanongying/p/7021555.html 本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的 ...

  10. SpringCloud工作笔记054---事物处理_MySQL的四种事务隔离级别_以及修改Mysql默认隔离级别

    JAVA技术交流QQ群:170933152 Mysql修改默认隔离级别: MySQL mysql默认的事务处理级别是'REPEATABLE-READ',也就是可重复读 1.查看当前会话隔离级别 sel ...

最新文章

  1. Android Studio 3.0+ Record Espresso Test 自动化测试
  2. 掌握这几种平面设计思维类型,让你设计水平上新台阶
  3. 在Windows平台如何选择C语言编译器?
  4. Linux下的Keyboard子系统
  5. python新建文件夹口令_Python 口令保管箱
  6. Sublime Text插件列表
  7. LeetCode 848. 字母移位(前缀和+取模)
  8. linux用户类型分类,信息安全技术题库:SELinux安全上下文主要包括用户、角色、类型、层次和分类字段。( )...
  9. 使用JVM钩子函数关闭资源
  10. PACPerformance
  11. 【离散数学】集合论 第三章 集合与关系(4) 集合的归纳定义、归纳证明、数学归纳法第一/二原理
  12. mysql 优化面试题
  13. 电商常见业务场景分析思路(持续更新中......)
  14. 一款非常萌的桌面工具---bongo cat mver0.1.6 附使用教程
  15. 耗资52亿美元,历时15年,人类有史以来建造的最复杂机器
  16. STM32MP157移植Qt5.12.10
  17. 京东商品详情接口,京东详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,京东APP详情,京东api接口,京东历史价格数据接口代码对接分享
  18. Tomcat启动之后遇到“ran out of the normal time range, it consumed [2000] milliseconds.”?
  19. [洛谷P3527] [POI2011]MET-Meteors
  20. 如何使投资收益最大化?

热门文章

  1. MySql字符串与时间日期之间的的转换
  2. Activiti中的流程存储服务(RepositoryService)
  3. java 解析 ical_ical4j 实现ICS文件的生成和解析
  4. js如何将跨域打开的窗口放到最前面_程序员的强迫症-便捷打开常用网站
  5. 【爬虫剑谱】二卷2章 实战篇-精美动漫图片爬取并保存
  6. Oracle中开启并行和相关查询
  7. vue ----组件数据共享
  8. iplatui---弹窗
  9. dnf维护服务器 安图妮15天,DNF带3次暴走安图恩被封15天 我这数据哪异常了?
  10. FTP与SFTP两者有什么区别