news 2026/4/19 23:41:31

mysql执行SQL查询时结果不一致_检查事务隔离级别设置与幻读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
mysql执行SQL查询时结果不一致_检查事务隔离级别设置与幻读

MySQL查询结果不一致最常见原因是事务未提交或隔离级别导致快照不同,REPEATABLE-READ下存在幻读,READ-COMMITTED每次SELECT可能看到新提交数据,长事务和主从延迟也会加剧该现象。MySQL 查询结果不一致,先查当前会话的隔离级别结果不一致最常见原因是事务没提交、其他事务在改数据,而你的会话看到的是不同快照——这直接由 transaction_isolation 决定。别猜,直接查:SELECT @@transaction_isolation;注意:MySQL 8.0+ 返回类似 REPEATABLE-READ,5.7 可能是 REPEATABLE-READ 或带 SESSION 前缀的完整值;如果返回 READ-COMMITTED,那每次 SELECT 都可能看到新提交的数据,自然“不一致”。全局设置不影响已开启的事务,只对后续新会话生效SET SESSION transaction_isolation = 'READ-COMMITTED'; 立即生效,但仅限当前连接应用用连接池时,可能复用旧连接,导致隔离级别和你预期不符幻读不是 bug,是 REPEATABLE-READ 下的正常现象你在同一个事务里两次 SELECT,第二次多出几行(或少几行),但没改过这些行——这就是幻读。MySQL 默认的 REPEATABLE-READ 能防止不可重复读,但**不阻止幻读**(除非加 SELECT ... FOR UPDATE 或用间隙锁)。普通 SELECT 不加锁,InnoDB 用 MVCC 快照,但快照只覆盖“已有行”,不锁定“未来插入的位置”想彻底避免幻读,得显式加锁:SELECT * FROM t WHERE id > 100 FOR UPDATE;,但这会阻塞其他插入INSERT ... SELECT 或 UPDATE ... WHERE 在 REPEATABLE-READ 下也会受幻读影响,因为内部执行时可能读到新插入的行检查是否被长事务拖累一个没提交的事务卡了 10 分钟,它持有的快照会让所有后续 SELECT 都看不到这期间的变更,看起来像“结果卡住不动”。查活跃事务:SELECT trx_id, trx_state, trx_started, trx_mysql_thread_id FROM information_schema.INNODB_TRX;重点关注 trx_state = 'RUNNING' 且 trx_started 时间很早的记录。 文心快码 文心快码(Comate)是百度推出的一款AI辅助编程工具

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 23:38:13

从数据荒漠到智能哨兵,AGI驱动的环境监测体系重构,深度拆解12个国家级试点项目核心架构

第一章:从数据荒漠到智能哨兵:AGI驱动环境监测的范式跃迁 2026奇点智能技术大会(https://ml-summit.org) 传统环境监测长期受限于传感器稀疏、人工巡检低效、数据孤岛严重等瓶颈,形成广袤而沉默的“数据荒漠”。当AGI系统介入——不仅作为分…

作者头像 李华
网站建设 2026/4/19 23:29:36

RecSys Datasets 推荐系统实验常用数据集大全

1. 推荐系统数据集入门指南 第一次接触推荐系统研究时,最让我头疼的就是找不到合适的数据集。记得当时为了复现一篇论文,花了两周时间到处搜集数据,结果发现要么数据格式不匹配,要么规模太小无法验证算法效果。后来在导师的指点下…

作者头像 李华
网站建设 2026/4/19 23:26:56

2025届学术党必备的十大降AI率神器推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek AI写作软件是借助自然语言处理跟机器学习技术的智能辅助工具,它能快速生成文章&a…

作者头像 李华