【问题标题】:mysql transaction isolation levels with examplemysql事务隔离级别示例
【发布时间】:2015-03-17 18:44:39
【问题描述】:

有人可以用很好的例子解释一下“事务”和“事务隔离级别”吗?我对在我的应用程序中使用它感到非常困惑。我在存储过程中做了很多插入/更新/选择事务,所以请在这个上下文中解释一下,(也考虑自动提交)。我也在我的应用服务器上使用连接池。

谢谢。

【问题讨论】:

    标签: mysql transactions isolation-level


    【解决方案1】:

    这些不同的概念可以很好地结合在一起。事务是我每天使用的数据库中一个非常基本且重要的概念。您可以在此处阅读有关事务最重要属性 ACID 的大量信息:http://en.wikipedia.org/wiki/ACID

    但我会试着用我自己的话给你一个概述:

    事务可以看作是将一组命令组合在一起。如果您在事务中更改/添加/删除数据库中的任何内容,则取决于该事务之外的任何人都无法看到这些更改的隔离级别。如果您回滚事务(例如,如果发生错误),则根本不会对数据库进行任何更改。如果您决定提交您的事务,则事务中发生的所有事情都会立即执行。因此,作为一个好习惯,将每个逻辑操作组合到一个事务中是一个绝妙的主意。

    自动提交则相反:每个更新/插入/删除都隐式/直接作为事务提交。所以它仍然可以被视为一个事务,但是你在它的末尾省略了显式提交。

    只有在确保事务只使用一个连接的情况下,连接池才能工作。但通常你必须先从池中获得一个连接才能执行你的语句,所以这不是问题。

    准备好的语句有点与事务无关。您当然可以在准备好的语句中使用事务,并且必须考虑到这一点,因为在 MySQL 中不可能使用嵌套事务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-24
      • 2010-11-22
      • 1970-01-01
      • 2011-12-17
      • 2011-09-30
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多