› 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 · 3165 views
    This topic created in 1021 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   ·   Privacy   ·   Solana   ·   950 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:35 · PVG 03:35 · LAX 12:35 · JFK 15:35
    ♥ Do have faith in what you're doing.