[英]performance of insert with python and sqlite3
我正在對SQLite3數據庫進行大批量插入,並且我試圖了解我應該期待什么樣的性能而不是我實際看到的。
我的表看起來像這樣:
cursor.execute(
"CREATE TABLE tweets(
tweet_hash TEXT PRIMARY KEY ON CONFLICT REPLACE,
tweet_id INTEGER,
tweet_text TEXT)"
)
我的插入看起來像這樣:
cursor.executemany("INSERT INTO tweets VALUES (?, ?, ?)", to_write)
其中to_write
是元組列表。
目前,在數據庫中大約有1200萬行,插入50 000
行需要大約16分鍾,在2008年的macbook上運行。
這聽起來合理,還是有些事情發生了?
據我所知,性能不佳的主要原因是浪費時間來提交許多SQLite事務。 該怎么辦?
然后刪除索引
PRAGMA synchronous = OFF (or NORMAL)
插入N行的塊(定義N,嘗試N = 5000以啟動)。 在插入塊之前
BEGIN TRANSACTION
插入后做
COMMIT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.