2015-07-20 74 views
0

從這個問題: SQLite updating ONE record is very (relatively) slow它是一個推薦的做法來提高性能使用PRAGMA同步= OFF

我看到他得到了使用PRAGMA同步= OFF一個大的速度增益。

我正面臨非常慢的sqlite更新時間(250毫秒),我需要從不同的線程做很多更新。

我有很多來自不同線程的數據庫打開連接。爲了有這樣的速度改進,最好只有一箇中央DataBase類包裝數據庫,並使用所有線程調用的鎖並使用PRAGMA synchronous = OFF來鎖定數據庫。

+0

你已經閱讀過http://stackoverflow.com/questions/1711631/improve-insert-per-second-performance-of-sqlite?rq=1,我懷疑可能會提供一些東西來嘗試? –

回答

1

PRAGMA synchronous隻影響磁盤同步;即。暫停以確保提供給操作系統的數據寫入磁盤。移動鎖無助於此。

現在好像你只是在猜測;您需要在優化之前進行一些分析。你的慢點在哪裏?哪些查詢很慢(使用EXPLAIN QUERY PLAN)?你是ANALYZE ing?

另請注意,SQLite不是非常適合併發的;一次只能有一個連接寫入數據庫。如果您需要高併發性,請考慮使用其他數據庫。

0

如果你有多個線程我不建議您打開同步off.I懷疑的速度將增加外面移動鎖類

我的建議是,你認爲數據庫的無用數據,這樣你就不必每次都讀取大量的數據。

相關問題