簡體   English   中英

使用python和sqlite3插入的性能

[英]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

另見http://www.sqlite.org/faq.html#q19

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM