2011-10-02 75 views
1

我想知道SQLite如何給多個數據庫同時插入/更新/刪除時的行爲?它是否產生了多個理論上比使用單個數據庫/單個進程具有更好併發性的進程,或者它對每個進程使用相同的進程?sqlite多個數據庫插入/更新/刪除

通過文檔搜索沒有提供一個確定的答案。我知道SQLite並不是多寫入最理想的環境,因爲數據庫駐留在單個文件中。但這是否意味着多個文件=不同的寫入過程?

databaseOne = connectToSqlite('databaseOne'); 
databaseTwo = connectToSqlite('databaseTwo'); 
function write() 
    queryDatabaseOne("INSERT SOMETHING INTO SOME_TABLE VALUES SOME_VALUES"); 
    queryDatabaseTwo("INSERT SOMETHING INTO SOME_TABLE VALUES SOME_VALUES"); 

所以,兩個不同的SQLite數據庫,和兩個插入並行地執行,在向這兩個數據庫中的表。

感謝

+0

這是什麼意思:'多個數據庫同時插入/更新/刪除'?也許你應該提供一個代碼示例? – ravenspoint

+0

這個問題不是關於特定的實現 - 它更多的是理論上的實現。但我看到它可能會令人困惑。我會添加一些僞代碼來澄清問題。 – dbozhinovski

+0

我不認識'queryDatabaseOne()'。它是不是阻塞?如果它阻塞,則插入不會並行執行。 – ravenspoint

回答

1

通常情況下,數據庫查詢被阻塞 - 他們不返回,直到他們完成。這有助於確保數據庫的完整性。 SQLITE API被阻塞。當然,如果您有多個數據庫,那麼您可以使用非阻塞例程編寫多線程應用程序,這些例程調用SQLITE API,然後將重疊並行插入代碼編碼到多個數據庫。您必須小心多線程應用程序中的所有常見事物--SASITE API既不會妨礙 - 增加了複雜性,以確保不會重複訪問SAME數據庫。

+0

謝謝,這正是我所期待的。 – dbozhinovski

相關問題