SQLITE:批量插入或替换(upsert)

eta*_*luz 6 python sqlite upsert

我有一个应用程序,可以将具有唯一键的记录插入(或替换)到 SQLite 数据库表中。预计每秒可处理约 1500 条记录,但由于性能问题,速度会比这慢。

目前我正在这样做(用Python):

for item in items:
    CONN.execute("INSERT OR REPLACE INTO ITEMS (ITEM_ID) VALUES ("+item['itemId']+")")
Run Code Online (Sandbox Code Playgroud)

我想要的是批量插入或替换以提高性能。

我知道有一种方法可以进行批量插入: Is it possible to insert multiple rows in an SQLite database?

但有没有办法批量插入或替换呢?我知道插入或替换与更新插入不同 - 没关系。

guy*_*kes -2

尝试这样的事情

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))