V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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
rimutuyuan
V2EX  ›  MySQL

update set num=num+1 和 select for update

  •  
  •   rimutuyuan · 2022-03-10 00:31:02 +08:00 · 1892 次点击
    这是一个创建于 1008 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://stackoverflow.com/a/5309003

    在这个回答中,为什么 select for update 更优越呢?

    英文很差,只能机翻看,一头雾水

    3 条回复    2022-03-10 01:21:31 +08:00
    liprais
        1
    liprais  
       2022-03-10 00:38:49 +08:00 via iPhone
    看你想干啥了
    另外 myisam 早就该进历史垃圾堆了
    0ZXYDDu796nVCFxq
        2
    0ZXYDDu796nVCFxq  
       2022-03-10 00:51:46 +08:00   ❤️ 2
    因为 MyISAM 在 update 时必须锁整个表
    update 操作其实隐含了 select 操作

    MyISAM 有读锁和写锁,读锁可以有多个,写锁只有一个所以只能锁整个表
    select for update 相当于先 select 再 update ,这样在 select 阶段就不需要锁整个表

    MyISAM 只有一些特殊场景才用吧,频繁更新数据的场景根本就不应该用 MyISAM
    sumulige
        3
    sumulige  
       2022-03-10 01:21:31 +08:00 via iPhone
    myisam 只支持表锁
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5226 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:41 · PVG 14:41 · LAX 22:41 · JFK 01:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.