当Berkeley DB只有一个作者时,是否值得使用交易?
交易会导致显着放缓吗? (百分比)
答案 0 :(得分:0)
如果您需要提供原子性,则使用事务。也许您需要中止事务,撤消其中的所有内容?或者您可能需要应用程序失败的语义,中止部分完成的事务。您选择的交易是基于原子性而非性能。如果你需要它,你需要它。
如果您不需要原子性,则可能不需要耐久性。那么,这要快得多!
答案 1 :(得分:0)
Berkeley DB中与DB_INIT_TXN的交易并不重要 比其他模型慢,虽然通常维持一个事务性 log要求在写入之前将所有数据写入日志 到数据库。
对于单个writer和多个reader,请尝试DB_INIT_CDB 模型,因为代码更简单。锁定在INIT_CDB中 模型是每表,所以整体吞吐量可能更糟 而不是INIT_TXN模型,因为每桌粗粒度 锁定争用。
性能将取决于访问模式而不是是否 一个使用DB_INIT_TXN或DB_INIT_CDB模型。