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

DB 开启了事务但只做了 select,请问是 commit 还是 roll back 耗资源?

  •  
  •   abv · Aug 7, 2015 · 5371 views
    This topic created in 4078 days ago, the information mentioned may be changed or developed.
    正确做法是什么,一直搞不明白,先谢了。
    12 replies  •  2015-08-10 09:05:02 +08:00
    imnpc
        1
    imnpc  
       Aug 8, 2015
    Selete 为什么要开启事务呢 一般不是写入重要操作的时候才需要吗
    msg7086
        2
    msg7086  
       Aug 8, 2015
    没写入的话commit和rollback没区别呀,都是释放掉当前上下文。
    hdshen
        3
    hdshen  
       Aug 8, 2015
    只做查询的时候 不开启事物

    有db写入的时候 才开启
    realpg
        4
    realpg  
       Aug 8, 2015
    MySQL么?
    第一,无更新操作不开启事务
    第二,如果是“可能更新”而开启事务最后因为逻辑直接要结束,应该commit,因为rollback必然要进行一大堆内部逻辑。不过无写入rollback跟commit的开销差距极小,
    sivacohan
        5
    sivacohan  
       Aug 8, 2015 via Android
    PostgreSQL的话建议用commit
    oclock
        6
    oclock  
       Aug 8, 2015
    @msg7086 "idle in transaction"
    msg7086
        7
    msg7086  
       Aug 9, 2015
    @oclock 没看懂,能详细说说么
    abv
        8
    abv  
    OP
       Aug 9, 2015
    @imnpc
    @msg7086
    @hdshen
    @realpg
    这个算进入事务了吧?
    select id from table where id=1 for update

    @sivacohan 谢谢
    @oclock 没太懂
    oclock
        9
    oclock  
       Aug 9, 2015
    不是开销问题,select for update之后到底有没有写动作,有的话肯定应该commit。一般可以这样
    try:
    db.session.execute(...)
    ...
    db.session.commit()
    except SQLAlchemy.Error:
    db.session.rollback()

    如果不捕捉异常,常常出现悬空连接idle in trasanction (postgresql),而数据库要过很久才会关闭这些连接
    msg7086
        10
    msg7086  
       Aug 10, 2015 via Android
    @oclock 楼主问的是提交和滚回的性能区别…
    oclock
        11
    oclock  
       Aug 10, 2015
    @msg7086 rollback贵,常识
    msg7086
        12
    msg7086  
       Aug 10, 2015
    @oclock 有多常识麻烦说说?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2710 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 02:30 · PVG 10:30 · LAX 19:30 · JFK 22:30
    ♥ Do have faith in what you're doing.