V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
150530
V2EX  ›  MySQL

Mysql 幻读问题

  •  
  •   150530 · Dec 13, 2023 · 2573 views
    This topic created in 867 days ago, the information mentioned may be changed or developed.

    手动实现幻读问题

    环境: 版本 8.0.27 ,默认隔离级别 RR

    只是测试 sql 大小写不规范请不要介意

    结论:只使用快照读或只使用当前读无幻读问题,混用会造成幻读问题(如果理解有误请各位指出)


    CREATE TABLE `test` (
      `a` int DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
    

    快照读 无不可重复读和读幻读问题,事务一始终读取快照,事务二插入对事务一无影响

    Imgur


    当前读不会影响其他事务快照读,但会影响其他事务当前读( next-key )

    Imgur


    快照读和当前读混用出现幻读问题( select 改为当前读即可解决)

    Imgur

    4 replies    2023-12-13 12:26:06 +08:00
    Leviathann
        1
    Leviathann  
       Dec 13, 2023
    索引也有影响的
    150530
        2
    150530  
    OP
       Dec 13, 2023
    @Leviathann 当前读下索引确实会影响锁定范围,锁粒度问题
    mouseman
        3
    mouseman  
       Dec 13, 2023 via iPhone
    本来就会这样的,你说的没错
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2585 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 120ms · UTC 16:07 · PVG 00:07 · LAX 09:07 · JFK 12:07
    ♥ Do have faith in what you're doing.