標籤:io ar 使用 sp 資料 on cti bs size
SQLite是一款輕量級的資料庫,不需要任何的安裝就可以使用,並且還是開源的,這作為開發人員的我們無疑是一個天大的福音。
但是在使用SQLite過程中,或許你會因為那奇慢無比的效能頭疼不已,因為修改的效能是那麼的低下。出現效能低下的情況是因為對SQLite的功能瞭解得不夠,SQLite裡有很多預設的設定導致了效能的降低。下面我將揭開提高SQLite效能的神秘面紗
1、 增大Cache值,在伺服器允許的情況下,盡量增大Cache的值;
例如:PRAGMA cache_size = 256 * 1024; (SQLite預設頁大小為1KB,cache_size如果為正數,則表示cache設定為多少頁,如果為負數則表示設定為多少KB)
2、 手動事務,SQLite預設情況下為每一句SQL語句均自動加上事務,如果不手動調整事務,SQLite的效率很低;
開始事務:begin transaction(begin)
提交事務:commit transaction(end)
復原事務:rollback transaction(rollback)
3、 設定Journal記錄模式,最新版本的SQLite記錄模式預設為TRUNCATE,除了修改外,其他效能均比較可觀,如果修改比較多的話,建議使用PERSIST記錄模式。當然,條件允許使用MEMORY更好。在使用其他記錄模式的之前,需考慮意外斷開資料庫連接的情況。
例如:PRAGMA journal_mode = memory; (設定記錄模式為記憶體模式)
4、 對於頻繁使用的操作,可以採用一次Prepare,在SQLite中,Prepare是需要耗一些資源的,並且這些資源累積起來對於系統也是一筆不小的開銷。在設計允許的情況下,建議多使用一次Prepare這種模式。
注意事項:在每次的bind之前,需要reset sqlite3_stmt對象
5、 如果使用一次性資料庫,可以使用記憶體資料庫”:memory:”,記住,字母必須全為小寫。
如何提升SQLite的效能