我知道插入/更新多行時SQLite的'問題',但這不是這裏的情況。SQLite更新一個記錄是非常(相對)慢
我正在更新一行中的一個字段,由PK索引,在表中有〜250條記錄。查詢總是需要〜200毫秒。這聽起來很少,但它很大。
爲什麼1很簡單UPDATE
查詢需要200毫秒?所有的閱讀都很快。
我已經試過:
BEGIN
和COMMIT
- 沒有變化,因爲它只是1個語句PRAGMA journal_mode=PERSIST
- 沒有變化,顯然是磁盤IO是沒有問題嗎?- 去除
UPDATE
陳述 - 奇妙的作品的時間!但它不是很執着
比較到MySQL在同一系統上:0.6ms在一個非常類似的數據庫。
我不需要交易安全(ACID?)或任何你稱之爲的東西。如果在查詢過程中計算機崩潰,我很好,輸了全部的變化。 MySQL(InnoDB)有一個選項:innodb_flush_log_at_trx_commit
。 SQLite有類似的東西嗎?
我正在使用sqlite-3.7.9,如果這很重要。
您是否嘗試過設置[VACUUM](http://www.sqlite.org/lang_vacuum.html)參數? – ldav1s
'VACUUM'會重建數據庫?但它是一個很小的分貝(270 kb)。更新的字段未編入索引。我將如何執行VACUUM,只是爲了嘗試? – Rudie
我做了一個VACUUM,現在db文件稍小=)就是這樣。沒有下面的答案,它仍然是一個非常緩慢的'更新'。 – Rudie