簡體   English   中英

Python / SQLite更新列

[英]Python/SQLite updating columns

我正在嘗試使用以下命令更新SQLite數據庫中的幾列:

UPDATE db SET Col1 = 0 WHERE Col1 IS NULL;
UPDATE db SET Col2 = 0 WHERE Col2 IS NULL;

然而,這似乎需要很長時間才能更新一列。 我已經使用:

CASE WHEN Col1 IS NULL THEN 0 ELSE Col1 END

在我的SELECT查詢中,它的工作速度要快得多,但UPDATE方法的速度有多慢呢? (我的數據庫中只有670K行)

注意:我的計算機相當高端,當UPDATE運行時,我的桌面資源似乎沒有太大的壓力。

UPDATE ing需要啟動一個事務,然后保持更新所做的更改的預寫日志,然后確保成功,然后將更改寫回主表,然后確保所有這些成功完成...

SELECT正在讀取,然后做一個簡單的“內存if”來交換每一行的值...所以它必然更快(加上磁盤讀取幾乎總是比磁盤寫入快得多(SELECT真的沒有'要求))...

您是否有可用於對查詢執行“解釋”的工具:查看sql查詢使用的索引(如果有)。 如果你的sql查詢導致超過670K行的全表掃描,那么它可能會很慢。

如果您使用的是ubuntu或基於類似的Linux發行版,Sqliteman將為您執行此操作。

暫無
暫無

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

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