热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

优化后的标题:事务ID分配的时间管理与效率提升策略

本文由编程笔记#小编为大家整理,主要介绍了事务ID分配时间相关的知识,希望对你有一定的参考价值。 我们一般会用start transaction或begin开始一个事务,自然而言的我们认为在这个时候就
本文由编程笔记#小编为大家整理,主要介绍了事务ID分配时间相关的知识,希望对你有一定的参考价值。



  • 我们一般会用start transaction或begin开始一个事务,自然而言的我们认为在这个时候就已经分配了一个事务ID,其实并不是这样,我们下面来看一个案例

  • 首先我们添加测试数据

  • 技术图片

  • 技术图片

  • 技术图片

  • 我们开启两个客户端,分别为session1和session2,事务隔离级别为RR

  • 技术图片

  • 大家心里会有个疑问,为什么我sessio1先开启的事务,但session2事务提交后,我还能看到了,这不成了不可重复读了吗,其实很简单,那是因为session1的start transaction;并没有分配事务ID,到第5步的时候才分配,所以session1.trx_id>session2.trx_id,所以看到session2提交的数据这就很正常了

  • 那么大家就会有疑问,RR隔离级别在什么时候才会分配事务ID呢,有两种方法分配

    1. start transaction; 后面的第一个select

    2. 要不就以这种方式开启一个事务 START TRANSACTION WITH CONSISTENT SNAPSHOT;


  • 下面我们来试下第一种方法, 我们把id=100的还是改为1来做测试

    • 技术图片

    • 这时候session1查出来的值还是1,但是因为我们在第3步已经为session1分配了trx_id,而session2在step4才分配,因此session1.trx_id

  • 下面我们来试下第二种方法

    • 技术图片

    • 还是没看到session2修改后的100,那说明START TRANSACTION WITH CONSISTENT SNAPSHOT;就会分配事务ID


  • 提示:

    • 什么时候分配事务ID,可以通过监控这个表的记录 select * from information_schema.INNODB_TRX;每执行一步就看下数据,那么就自然而然的知道是什么时候分配的事务ID了



推荐阅读
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • MySQL中枚举类型的所有可能值获取方法
    本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 本文由瀚高PG实验室撰写,详细介绍了如何在PostgreSQL中创建、管理和删除模式。文章涵盖了创建模式的基本命令、public模式的特性、权限设置以及通过角色对象简化操作的方法。 ... [详细]
  • 本文介绍如何使用JPA Criteria API创建带有多个可选参数的动态查询方法。当某些参数为空时,这些参数不会影响最终查询结果。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 华为USG基于源地址的多出口策略路由配置
    网络拓扑如下:组网情况:企业用户主要有技术部(VLAN10)和行政部(VLAN20),通过汇聚交换机连接到USG。企业分别通过两个不同运营商(ISP1和ISP2)连接到 ... [详细]
author-avatar
蘑菇宝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有