c++ - 高效更新多条记录的 SQLite 表

标签 c++ python sql database sqlite

我正在尝试将 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/

相关文章:

c++ - 如何将包含其他结构和数组的整个结构对象数组清零?

python - 在Python中打印列表元素和字符串有不同的结果

python - 导入 Python 模块时遇到问题

java - 如何使用比较器对集合中的多个字段进行排序?

c++ - 使用标准 C++ fstream 在串行设备 (/dev/ttyGS0) 上读写?

c++ - 初学者错误 "getline"

python - 如何使用 bot.sendAudio() 从 url 发送音频

MySQL 计数/跟踪条纹或连续日期

mysql - 仅过滤属于第三张表中某物的用户

c++ - 返回值优化 : ho can I avoid copy construction of huge STL containers.