And*_* Ho 2 python sqlite performance
可以说我有它由三列的数据库表:id,field1和field2.该表中可能包含100到100,000行.我有一个python脚本,应该在此表中插入10-1,000个新行.但是,如果field1表中已存在新的,则应该执行UPDATE,而不是INSERT.
以下哪种方法更有效?
SELECT field1 FROM table(field1是唯一的)并将其存储在列表中.然后,对于每个新行,用于list.count()确定是否INSERT或UPDATESELECT count(*) FROM table WHERE field1="foo"然后是INSERT或UPDATE.换句话说,执行n + 1个查询和搜索列表,或2n个查询并获取sqlite进行搜索是否更有效?
如果我理解你的问题,似乎你可以简单地使用SQLite内置的冲突处理机制.
假设你对field1有一个UNIQUE约束,你可以简单地使用:
INSERT OR REPLACE INTO table VALUES (...)
Run Code Online (Sandbox Code Playgroud)
还支持以下语法(相同的语义):
REPLACE INTO table VALUES (...)
Run Code Online (Sandbox Code Playgroud)
编辑:我意识到我并没有真正回答你的问题,只是提供一个应该更快的替代解决方案.
| 归档时间: |
|
| 查看次数: |
1871 次 |
| 最近记录: |