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