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
noble4cc
V2EX  ›  MySQL

mysql 查询会加锁开启事务吗?

  •  
  •   noble4cc · 2020-05-10 19:28:12 +08:00 · 3908 次点击
    这是一个创建于 1669 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不主动加锁比如 for update 也会开启事务并对查询的事务加锁吗?

    4 条回复    2020-05-19 16:04:26 +08:00
    xizismile
        1
    xizismile  
       2020-05-10 20:17:22 +08:00 via Android   ❤️ 1
    mysql 读分为两种,锁读和一致性读

    锁读(共享读( select in share mode )和排它读( select for update ))会加锁
    一致性读(普通的那种读)不加锁

    开启还是不开启事务,这和应用端事务设置以及数据库事务设置都有关系
    gaius
        2
    gaius  
       2020-05-10 22:37:35 +08:00 via Android
    事务是事务,锁是锁
    billlee
        3
    billlee  
       2020-05-10 22:56:04 +08:00
    不执行 START TRANSACTION 的情况下,是否开启事务由连接的 autocommit 配置决定。
    默认隔离级别下,开启事务时执行单纯的 SELECT 不会加锁,会通过 MVCC 实现 Repeatable read
    Coolha
        4
    Coolha  
       2020-05-19 16:04:26 +08:00
    不使用 for update 读,不加锁,隔离性靠 MVCC 机制保证
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3355 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:00 · PVG 20:00 · LAX 04:00 · JFK 07:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.