我想打开并读取一个只读的SQLite .db文件。我保证在此期间没有其他人会接触它(也许除了只读)。
我从SQLite3得到的回报是,它永远不会向磁盘写入任何内容(特别是 - 没有描述here),也不会对文件使用任何文件系统锁。
要问太多了吗?
答案 0 :(得分:3)
如果您在某些Unix下运行,可以使用unix-none
VFS禁用所有锁定。
在Windows中,SQLite始终使用锁。
如果您确实想要避免锁定,可以编写自己的VFS,或使用xSetSystemCall
覆盖锁定系统调用。
如果SQLite需要临时文件,则无法阻止它创建临时文件。 但是,您可以将其配置为create them in memory instead of on disk。
答案 1 :(得分:0)
可以使用只读用户吗?我不知道SQL Lite中是否存在这样的角色。
答案 2 :(得分:0)
VFS没有可以注入的Lock方法。因此,没有直接的方法来注入虚拟LockFile和LockFileEx方法。
这些方法在sqlite3_io_methods(winIoMethod)中引用,并且在不改变SQLite源代码的情况下似乎不容易在运行时修改。
那么,如果我理解正确,VFS不是正确的方向?或者是吗?