pea*_*kit 0 database transactions isolation-level
我想知道达到事务隔离级别的最佳方法是什么? 这是可用隔离级别的良好链接。
Blockquote 如果有人可以解释事务的各种隔离级别,那就太好了
更新:澄清并更正了解释。
隔离级别仅表明您的事务有多少受到其他并发事务的影响。隔离级别越高,受影响越小。
这些努力将体现在 CPU 负载、内存负载,或许还有提交延迟上。此外,在较高的隔离级别中,写入冲突的可能性更大,这可能意味着您必须中止事务并重试整个操作。(这仅影响执行更新或插入的事务,而不影响仅执行选择的事务。)
一般来说,经验法则是使用为应用程序提供所需一致性的最低级别。
读提交模式提供的部分事务隔离对于许多应用程序来说已经足够了,并且该模式快速且使用简单;然而,这并不足以满足所有情况。执行复杂查询和更新的应用程序可能需要比读提交模式提供的更严格一致的数据库视图。
可序列化模式严格保证每个事务都能看到完全一致的数据库视图。但是,当并发更新无法维持串行执行的假象时,应用程序必须准备好重试事务。由于重做复杂事务的成本可能很高,因此仅当更新事务包含足够复杂的逻辑以至于它们可能在读提交模式下给出错误答案时才建议使用可序列化模式。最常见的是,当事务执行多个必须看到相同数据库视图的连续命令时,需要串行化模式。
(http://www.postgresql.org/docs/8.4/interactive/transaction-iso.html非常好。)