我正在尝试将 sqlite (sqlite3) 用于一个项目以存储数十万条记录(希望 sqlite 这样程序的用户不必运行 [my]sql 服务器)。
有时我必须更新数十万条记录才能输入左右值(它们是分层的),但找到了标准
update table set left_value = 4, right_value = 5 where id = 12340;
非常慢。我试过用
包围每一千个左右begin;
....
update...
update table set left_value = 4, right_value = 5 where id = 12340;
update...
....
commit;
但是还是很慢。奇怪,因为当我用几十万(带插入)填充它时,它会在几秒钟内完成。
在将其移至 C++ 实现之前,我目前正在尝试在 python 中测试速度(慢在命令行和 python 中),但现在这是减慢速度的方式,我需要找到一个新的解决方案,除非我做错了什么。想法? (将采用可移植的 SQLite 的开源替代品)
最佳答案
在table.id
上创建索引
create index table_id_index on table(id)
关于c++ - 高效更新多条记录的 SQLite 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2838790/