出于性能和可靠性的原因,我想使用 WAL 模式。但是我的环境没有 mmap() 函数,所以我不能用 WAL 编译 SQLite(WAL 需要 mmap()。)。虽然设置PRAGMA locking_mode=EXCLUSIVE
允许在没有 mmap() 的情况下使用 WAL(在这种情况下,WAL-index 是在堆内存而不是共享文件上创建的),但对于管理多个数据库连接的应用程序来说,这不是一个好的解决方案。
我在一个进程中使用具有多个数据库连接(用于线程间并发)的 SQLite,而 mmap() 似乎仅用于进程间内存共享。因为我希望有一种方法可以在单进程环境中使用没有 mmap() 的 WAL。但我找不到好的解决方案。有什么想法可以解决这个问题吗?
谢谢。