【发布时间】:2012-09-20 22:54:49
【问题描述】:
对于必须执行典型的数据库操作以减少库存的电子商务站点,最好的事务隔离模式是什么?我应该使用READ COMMITTED 来防止读取交易中的数据吗?
【问题讨论】:
标签: mysql transactions e-commerce relational-database
对于必须执行典型的数据库操作以减少库存的电子商务站点,最好的事务隔离模式是什么?我应该使用READ COMMITTED 来防止读取交易中的数据吗?
【问题讨论】:
标签: mysql transactions e-commerce relational-database
您希望数据准确还是不准确?您希望它准确如何准确?您希望系统能在多大程度上保证您的数据确实准确?
在从 0 到 100% 的范围内,100% 表示您应该使用 SERIALIZABLE,而零表示您可以负担(/您的用户可以接受)READ UNCOMMITTED。
编辑(根据评论中的建议)
当然,关于数据完整性的更强有力的保证是有代价的。至少,“更强”的隔离级别(SERIALIZABLE、REPEATABLE READ)总是会减少更新事务并发运行的机会。他们可能还负责减少更新者和阅读者之间的并发性。没有硬性的通用规则,取决于引擎使用的内部机制。
【讨论】:
SERIALIZABLE 的缺点,因为您不应该总是使用它的原因并不明显。