【问题标题】:Which isolation mode should you choose if you want the least concurrency?如果你想要最少的并发,你应该选择哪种隔离模式?
【发布时间】:2010-11-03 02:53:41
【问题描述】:

如果您需要尽可能减少并发性,哪种隔离级别(可重复读取、可序列化、已提交读取、未提交读取)效果最好?

【问题讨论】:

  • 请指定您使用的数据库品牌。事务隔离级别因 RDBMS 品牌的行为和术语而异。
  • 这可能有助于解释为什么要最小化并发。这无异于将性能降到最低,而这通常不是人们所要求的。
  • @Bill Karwin:我猜他的意思是 SQL 标准

标签: sql database isolation


【解决方案1】:

Serializable 提供了最大的隔离性,因此并发性最低。

http://en.wikipedia.org/wiki/Isolation_(database_systems)

【讨论】:

    【解决方案2】:

    我猜你真的想在这里尽可能最大化并发,以提高性能。不幸的是,仅仅选择一种隔离模式并不能解决问题。关于这些隔离模式的真正问题是,您可以在您的特定应用程序中使用它们吗?

    这真的取决于你的应用程序的细节,这可能不是我们可以在 Stack Overflow 上调试的。

    但是,一般来说,假设您没有数据损坏,从最高并发到最低并发,Oracle 的隔离级别是:

    1. 读取未提交
    2. 读取已提交
    3. 可重复读取
    4. 可序列化。

    对于 PostgreSQL 来说就不同了,因为它使用不同的同步模型 (MVCC),读取是免费的,但在写入时会冒回滚的风险。

    我想这个问题的真正答案是,询问并获得很多天的学习资料,或者只是雇人来处理你的特殊情况。虽然它非常技术性,但没有硬性规定:您需要了解所发生事情背后的理论和具体情况,才能提出有用的建议。

    【讨论】:

      猜你喜欢
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 2011-03-12
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多