我認爲這是非常簡單的問題。但我自己無法解決。
我有兩個應用程序。 以極快的速度寫入sqlite3數據庫 - 每秒大約6個事務塊。 另一個應該有時從數據庫讀取數據。
我應該如何設計這兩個應用程序?現在,當第一個應用程序寫入另一個失敗時,出現錯誤「數據庫已鎖定」,或者我試圖執行的funcs:SQLite3_Open或帶有SQLITE_OPEN_READONLY標誌的SQLite3_Open_v2。
主要問題是:是一個應用程序能夠做'SELECT',而另一個應用程序則是'INSERT'?
如果不行,我該怎麼辦?
關閉寫入數據庫連接,然後打開另一個數據庫連接,做select,然後關閉它,然後再打開寫回連接並繼續插入?換句話說我是否需要「發明」一些機制來控制這些「讀取」和「寫入」應用程序對separte數據庫的訪問?
如果是,比應用「A」強制關閉應用的「B」連接的可能性更大 謝謝!SQLite多進程訪問
1
A
回答
2
SQLite可以很好地處理多個進程。藉助WAL支持,您甚至可以在另一個連接寫入時從一個連接讀取數據庫。假設每個事務每次不超過166ms,那麼每秒6次事務並不是很多。
當您逐句通過語句時,而不是在打開數據庫時,通常會返回鎖定。第一次連接是否可以用SQLITE_OPEN_EXCLUSIVE
打開?這會導致另一個進程無法打開連接。如果是這種情況,請刪除該標誌。
+0
塞繆爾,謝謝你的回答!
–
Alex
相關問題
- 1. SQLite多進程訪問
- 2. Android SQlite多線程訪問
- 3. 從不同進程訪問SQLite
- 4. 使用C#和EntityFramework對SQLite進行多線程訪問
- 5. C++/SQLite - 具有多個進程的db訪問
- 6. 從多個進程訪問SQLite數據庫和SQLITE_BUSY
- 7. 從多線程sqlite訪問閱讀
- 8. Amazon S3文件訪問多個進程
- 9. 從CMD訪問sqlite表進行eclipse
- 10. 訪問特定工作進程,其具有多個進程
- 11. 如何在android sqlite應用程序中訪問多個列值?
- 12. 多個應用程序可以訪問SQLite數據庫嗎?
- 13. 從多個線程訪問的SQLite數據庫
- 14. 訪問SQLite文件的應用程序的多個副本?
- 15. 使用多線程訪問sqlite時出錯
- 16. Android從多個線程訪問SQLite數據庫
- 17. SQLite數據庫的遠程訪問
- 18. 遠程訪問sqlite或mysql數據庫
- 19. 從遠程服務器訪問sqlite
- 20. 真空的SQLite從多個進程
- 21. 訪問其他Java進程
- 22. 多線程訪問集合
- 23. 多線程訪問Excel
- 24. 多線程訪問變量
- 25. 多線程變量訪問
- 26. 被多個線程訪問
- 27. NSMutableDictionary&多線程訪問
- 28. 多線程文件訪問
- 29. java多線程訪問Hashtable
- 30. 多線程訪問文件
此鏈接可能會幫助您:http://stackoverflow.com/questions/1680249/how-to-use-sqlite-in-a-multi-threaded-application – Anuraj