【发布时间】:2019-07-03 07:50:52
【问题描述】:
我打算在 WAL 模式下使用 Sqlite(在 Web 服务器上)。
据我了解,这种模式永远不会阻止读取,即使同时发生写入也是如此。
一次仍然只有一个写事务,但我猜锁定时间很短,因为只有当 WAL 文件超过一定大小时才会对 db 进行实际写入。
所以:
当事务写入 WAL 文件时,我应该在 WAL 模式下锁定多长时间? WAL 文件何时提交?
是否有任何基准测试可以测试这一点?
谢谢。
【问题讨论】:
我打算在 WAL 模式下使用 Sqlite(在 Web 服务器上)。
据我了解,这种模式永远不会阻止读取,即使同时发生写入也是如此。
一次仍然只有一个写事务,但我猜锁定时间很短,因为只有当 WAL 文件超过一定大小时才会对 db 进行实际写入。
所以:
当事务写入 WAL 文件时,我应该在 WAL 模式下锁定多长时间? WAL 文件何时提交?
是否有任何基准测试可以测试这一点?
谢谢。
【问题讨论】:
速度非常快。我有一个基于 Web 的 API (PHP+SQLite),每月处理 2 到 5 百万个(读/写)事务。使用 PRAGMA journal_mode = WAL 没有问题。这只是我知道的观察数据,但认为它可能会有所帮助。
【讨论】: