innoDB默认隔离级别

mysql> SELECT @@tx_isolation;
+-----------------+
| @@tx_isolation  |
+-----------------+
| REPEATABLE-READ |
+-----------------+

两个事务同时更新一条数据

右图第二个事务的update增加行锁(表中id有索引), 在未提交之前,左图第一个事务update操作会进入阻塞状态, 左图中仍然可以进行select

右图第二个事务提交之后, 第一个事务会执行update并返回结果,但是还没有提交,  此时右图的查询结果是第二个事务提交的值

然后左图第一个事务也提交, 会覆盖右图第二个事务的值。左图操作的是右图变更前的数据,这个在并发时是不正常的

更新数据库的隔离级别为序列化

开启两个事务, 右图进行update操作, 左图事务的select操作会进入阻塞操作

右图提交之后, 左图事务select返回右图提交之后的结果

此时左图再update commit, 会覆盖右图的结果。左图操作的是右图变更后的数据, 这个在并发时是正常的.

总结:

可重复读时,有幻读的问题, 使用行写锁

序列化时,  select会阻塞,并发性能极低 == 没有并发, 使用行读锁

使用索引select update时,会在行上加锁(具体哪种锁,读,写?),

不能使用索引时在表上加锁, 表锁也会极大的影响并发性能

索引可以提高并发的原因:1.sql查询的数据量小,sql响应快 2.行锁,提高并发,不影响其他线程

TODO:: 分布式最终一致性,为什么可以不使用事务?

转载于:https://www.cnblogs.com/yszzu/p/9296330.html

mysql隔离级别与锁,接口并发响应速度的关系(2)相关推荐

  1. Mysql隔离级别、锁及死锁

    一.MySQL常用存储引擎 MyISAM:5.1及之前默认的存储引擎,不支持事务.外键:只有索引缓存(index buffer):提供表级锁,只有select语句时不锁,其他情况上锁:适于select ...

  2. mysql 隔离级别和锁相关

    mysql数据库中存在三种锁,间隙锁(gap-lock) , 行锁(record-lock),gap-record-lock gap-record-lock 是间隙锁和行锁的组合, 间隙锁(gap l ...

  3. mysql隔离级别与锁的关系

  4. MySQL事务原理分析(ACID特性、隔离级别、锁、MVCC、并发读异常、并发死锁以及如何避免死锁)

    MySQL事务原理分析(ACID特性.隔离级别.锁.MVCC.并发读异常.并发死锁以及如何避免死锁) 一.事务 目的 组成 特征 事务空间语句 二.ACID特性 原子性(A) 隔离性(I) 持久性(d ...

  5. 事物的级别_浅谈MySQL并发控制:隔离级别、锁与MVCC

    推荐阅读: 恕我直言!收藏这个MySQL文档,你其余的MySQL学习资料都可以扔了 前言 如果数据库中的事务都是串行执行的,这种方式可以保障事务的执行不会出现异常和错误,但带来的问题是串行执行会带来性 ...

  6. mysql 乐观锁 脏读_mysql 丢失更新1和2、脏读、不可重复读和幻读 事务隔离级别 悲观锁 乐观锁...

    事务是现代关系型数据库的核心之一.在多个事务并发操作数据库(多线程.网络并发等)的时候,如果没有有效的避免机制,就会出现以下几种问题: ( 第一类丢失更新 A事务撤销时,把已经提交的B事务的更新数据覆 ...

  7. mysql隔离级别与悲观锁、乐观锁

    2019独角兽企业重金招聘Python工程师标准>>> 1.什么是悲观锁,乐观锁 悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性.但随之而来的就是数据库性能的大 ...

  8. mysql transaction用法,mysql的事务,隔离级别和锁用法实例分析

    本文实例讲述了mysql的事务,隔离级别和锁用法.分享给大家供大家参考,具体如下: 事务就是一组一起成功或一起失败的sql语句.事务还应该具备,原子性,一致性,隔离性和持久性. 一.事务的基本要素 ( ...

  9. MySQL深度剖析之事务隔离级别和锁机制(2021)

    一 事务隔离级别和锁机制 1.1 多个事务并发修改同一条数据或者对同一条数据并发读写存在哪些事务并发问题 1.1.1 脏读(未提交读) A事务读取了别的事务还未提交的更新,而B事务是有可能回滚的. 1 ...

最新文章

  1. 两个月入门深度学习,全靠动手实践!一位前端小哥的经验分享
  2. LAMP编译安装(一)——安装Apache2.4
  3. SSO单点登录之——JWT
  4. 在IOC中装配Bean
  5. 看ct片子的软件_X光、CT、核磁、B超的辐射到底对孩子有多大影响?
  6. Git 切换远程仓库地址三种方法
  7. 硅谷新传奇Kevin Systrom
  8. openCV5-getTickCount
  9. 简单的java恶搞小病毒_恶搞电脑病毒代码有哪些
  10. 手机工商银行显示服务器安装不了,工行网银助手无法安装怎么办?
  11. Nginx学习笔记(七)——配置Nginx实现Gzip网页压缩、图片压缩
  12. 2018.12.26 Jquery 使用 slideBox 实现滚动 效果
  13. server 08 做DNS和域分离
  14. U盘有容量有一半不见了,修复U盘
  15. [LaTeX] 调整参考文献的格式(References),包括作者名缩写,行距,字体,引用顺序等等
  16. TypeScript学习笔记
  17. 切绳子【洛谷P1577】【二分】
  18. 银湖网更改手机号那极致糟糕的体验
  19. cucumber介绍及简单使用
  20. 【MATLAB】求算凸轮摆杆机构的最大压力角和最小半径并画出凸轮轮廓

热门文章

  1. 自定义beans.xml文件实现Spring框架
  2. DataBindings的用法
  3. Proxy 对象简介
  4. OWA2003隐藏附件病毒提示的方法
  5. SQL Server触发器创建、删除、修改、查看
  6. android设备如何苹果,Android安卓设备如何连接Mac的方法
  7. html——原生js与jquery创建元素节点区别
  8. Android ListView常用用法(结合长按、数据库等)
  9. 手机游戏再造创业神话 80后月入过百万
  10. 区块链会计案例_区块链在会计领域的应用分析与研究