热门标签 | 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了



推荐阅读
  • MySQL:不仅仅是数据库那么简单
    MySQL不仅是一款高效、可靠的数据库管理系统,它还具备丰富的功能和扩展性,支持多种存储引擎,适用于各种应用场景。从简单的网站开发到复杂的企业级应用,MySQL都能提供强大的数据管理和优化能力,满足不同用户的需求。其开源特性也促进了社区的活跃发展,为技术进步提供了持续动力。 ... [详细]
  • C#编程指南:实现列表与WPF数据网格的高效绑定方法 ... [详细]
  • MySQL 数据操作:增、删、查、改全面解析
    MySQL 数据操作:增、删、查、改全面解析 ... [详细]
  • 本文详细探讨了如何有效解决Oracle数据库中常见的ORA-01578和ORA-26040错误。这些错误通常与数据块损坏有关,严重影响数据库的稳定性和数据完整性。文章不仅提供了详细的故障诊断步骤,还介绍了多种修复方法,包括使用RMAN工具、手动修复数据块以及预防措施,以帮助数据库管理员高效应对这些问题。 ... [详细]
  • 本文首先回顾了MySQL在数据字典方面的发展历程,从MySQL 4.1引入的information_schema数据字典开始,使得用户能够通过标准SQL查询轻松获取系统元数据。在此基础上,深入探讨了MySQL 5.7中SYS模式的架构与应用场景,详细解析了其在性能监控、查询优化等方面的优势与实际应用。 ... [详细]
  • 在Hive中合理配置Map和Reduce任务的数量对于优化不同场景下的性能至关重要。本文探讨了如何控制Hive任务中的Map数量,分析了当输入数据超过128MB时是否会自动拆分,以及Map数量是否越多越好的问题。通过实际案例和实验数据,本文提供了具体的配置建议,帮助用户在不同场景下实现最佳性能。 ... [详细]
  • 如何在 Python 编程中实现各种数据类型的字符串转换? ... [详细]
  • 成功实现Asp.Net MVC3网站与MongoDB数据库的高效集成
    我们成功地构建了一个基于Asp.NET MVC3框架的网站,并实现了与MongoDB数据库的高效集成。此次更新不仅完善了基本的创建和显示功能,还全面实现了数据的增删改查操作。在创建功能方面,我们修复了之前代码中的错误,确保每个属性都能正确生成。此外,我们还对数据模型进行了优化,以提高系统的性能和稳定性。 ... [详细]
  • 在C#编程中,管理和操作Windows事件日志是一项重要技能。本文详细探讨了如何注册新的事件源,并通过示例代码展示了如何在应用程序中实现这一功能。具体而言,文章介绍了通过检查事件源是否存在,若不存在则进行注册的步骤,以及如何利用`EventLog`类来记录日志消息。此外,还提供了关于事件日志配置和最佳实践的深入分析,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • voc生成xml 代码
    目录 lxmlwindows安装 读取示例 可视化 生成示例 上面是代码,下面有调用示例 api调用代码,其实只有几行:这个生成代码也很简 ... [详细]
  • DHCP三层交换机设置方式全局模式和接口模式设置方式和命令resetsave回车输入yreboot输入n输入y重启后就恢复默认设置了默认用户名密码adminAdmin@huawei ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • PHP连接MySQL的三种方法及预处理语句防止SQL注入的技术详解
    PHP连接MySQL的三种方法及预处理语句防止SQL注入的技术详解 ... [详细]
  • Android目录遍历工具 | AppCrawler自动化测试进阶(第二部分):个性化配置详解
    终于迎来了“足不出户也能为社会贡献力量”的时刻,但有追求的测试工程师绝不会让自己的生活变得乏味。与其在家消磨时光,不如利用这段时间深入研究和提升自己的技术能力,特别是对AppCrawler自动化测试工具的个性化配置进行详细探索。这不仅能够提高测试效率,还能为项目带来更多的价值。 ... [详细]
  • 如何在PHP中实现链接输出与字符串连接的操作技巧 ... [详细]
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社区 版权所有