我知道插入/更新多行时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