簡體   English   中英

如何加快MySql上百萬條記錄的更新查詢

[英]How to speed up the update query on MySql for millions of records

我有一個包含 2700 萬個 id 列的表。 我計划從另一個需要很長時間才能完成的表中更新平均值和計數。

Below is the update query (Database - MySQL, I am using Python to connect to the Database) UPDATE dna_statistics SET chorus_count = (SELECT count(*) FROM dna B WHERE B.music_id = <music_id> AND B.label = 'Chorus') WHERE music_id = 916094

正如 scaisEdge 已經說過的,您需要檢查兩個表上是否有索引。

我想補充一下 scaisEdge 的答案,即復合索引中列的順序應該與您比較它們的順序相匹配。

你用過

    WHERE B.music_id = <music_id>
AND B.label = 'Chorus')

因此,您的索引應該由按順序排列的列(music_id,label)而不是(label,music_id)組成。

我會將此添加為評論,但我距離評論還有 1 個聲譽點。

UPDATE子句不是 2700 萬個 id 的好解決方案

改用EXCHANGE PARTITION

https://dev.mysql.com/doc/refman/5.7/en/partitioning-management-exchange.html

確保你有一個 cmposite 索引

 table dna   column ( label, music_id) 

和一個索引

table  dna_statistics column (music_id)

暫無
暫無

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

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