我有一个应用程序,它将带有唯一键的记录插入(或替换)到SQLite数据库表中。 预计每秒会有大约1500条记录,但由于性能问题,它的速度要慢于此。
目前我正在这样做(在Python中):
for item in items:
CONN.execute("INSERT OR REPLACE INTO ITEMS (ITEM_ID) VALUES ("+item['itemId']+")")
我想要的是批量插入或替换以提高性能。
我知道有一种方法可以进行批量插入: Is it possible to insert multiple rows at a time in an SQLite database?
但有没有办法进行批量插入或替换? 我知道插入或替换与upsert不同 - 没关系。
答案 0 :(得分:1)
尝试这样的事情
INSERT OR REPLACE INTO items (id, link, added) VALUES (19122727, "https://instant.page/", COALESCE((SELECT added FROM items WHERE id = 19122727), 1549742777)),(19123506, "http://hades.mech.northwestern.edu/index.php/Modern_Robotics", COALESCE((SELECT added FROM items WHERE id = 19123506), 1549742777)),(19123352, "https://dendibakh.github.io/blog/2019/02/09/Top-Down-performance-analysis-methodology", COALESCE((SELECT added FROM items WHERE id = 19123352), 1549742777))