我有兩個表,company
和investment
,我需要在公司表中包含一列,其中包含每家公司的投資數量。優化在每個行整個表上聚合的更新命令
順便說一下這是一個sqlite數據庫。
我嘗試以下查詢:
UPDATE company SET numlinks = (SELECT count(*)
FROM investment
WHERE investment.company_name = company.name);
我敢肯定查詢是正確的。如果我爲單個公司運行該行,則該行會被正確更新。但鑑於我有超過300K行,查詢開始運行,似乎需要一段時間。
當運行它單個公司的.timer ON
命令,所使用的CPU爲約0.03(我不知道單位,我猜它在幾秒鐘內)
,我怎麼能做出這樣快的任何想法?
你需要一個* pure * SQL解決方案嗎?還是你使用「前端」編程語言? – Barranka
這實際上並不適用於Web應用程序,但我可以在Python中使用某些東西。爲什麼這會更有效率? – leonsas
我認爲SQLite的限制(例如,你不能在'update'語句中使用'join')會使它變得複雜......你需要在你的where條件下輸入每一個公司的id在你的子查詢和你的'update'語句中)...爲了方便起見,我會用前端解決方案來做,而不是直接在SQLite中,但這只是我 – Barranka