我想打開並讀取SQLite .db文件,只讀。我保證在這段時間內沒有人會碰它(也許,除了只讀)。SQLite - make true只讀數據庫
我需要從SQLite3作爲回報,它不會向磁盤寫入任何數據(特別是 - 沒有描述那些描述的here),並且不在文件上使用任何文件系統鎖。
這是不是太難問了?
我想打開並讀取SQLite .db文件,只讀。我保證在這段時間內沒有人會碰它(也許,除了只讀)。SQLite - make true只讀數據庫
我需要從SQLite3作爲回報,它不會向磁盤寫入任何數據(特別是 - 沒有描述那些描述的here),並且不在文件上使用任何文件系統鎖。
這是不是太難問了?
可以使用只讀用戶嗎?我不知道SQL Lite中是否存在這樣的角色。
SQLite沒有用戶或訪問權限。 –
如果您在某些Unix下運行,則可以使用unix-none
VFS來禁用所有鎖定。
在Windows中,SQLite總是使用鎖。 如果您確實想要避免鎖定,您可以編寫自己的VFS,或使用xSetSystemCall
覆蓋鎖定系統調用。
如果SQLite需要一個臨時文件,你不能阻止它創建一個。 但是,您可以將其配置爲create them in memory instead of on disk。
VFS沒有Lock方法可以注入。因此沒有直接的方法來注入虛擬LockFile和LockFileEx方法。
這些方法在sqlite3_io_methods(winIoMethod)中被引用,並且在運行時似乎不容易修改而不改變SQLite源代碼。
那麼,如果我理解正確,VFS不是正確的方向?或者是?
我們發現這個「Read-Uncommitted Isolation Mode」,請參閱http://www.sqlite.org/sharedcache.html,它應該解決這個問題;但是,它沒有。 SQLite仍然嘗試使用鎖定API。任何想法? –