SQLite WAL 模式,内存中,带有私有缓存的数据库?
SQLite WAL-mode, in-memory, database with private cache?
我正在做一个项目,该项目依赖于 Sqlite 中 WAL 日志模式提供的读取快照隔离。它使用到同一数据库的多个连接以允许并发读取器和单个写入器。
对于测试,我想使用内存数据库,但据我所知,这需要 SQLITE_OPEN_SHAREDCACHE
(这会使 WAL 模式提供的读取快照隔离保证无效)。
有什么方法可以在私有缓存模式下打开到内存中、WAL 模式、SQLite 数据库的多个连接?
这个问题可能有(预先存在的)VFS 解决方案吗?
WAL 模式不适用于内存数据库。
要获得 WAL(和读取快照隔离),您需要使用磁盘上的临时数据库。
(此磁盘可能是 RAM 磁盘。)
我正在做一个项目,该项目依赖于 Sqlite 中 WAL 日志模式提供的读取快照隔离。它使用到同一数据库的多个连接以允许并发读取器和单个写入器。
对于测试,我想使用内存数据库,但据我所知,这需要 SQLITE_OPEN_SHAREDCACHE
(这会使 WAL 模式提供的读取快照隔离保证无效)。
有什么方法可以在私有缓存模式下打开到内存中、WAL 模式、SQLite 数据库的多个连接?
这个问题可能有(预先存在的)VFS 解决方案吗?
WAL 模式不适用于内存数据库。
要获得 WAL(和读取快照隔离),您需要使用磁盘上的临时数据库。 (此磁盘可能是 RAM 磁盘。)