2
我有兩個表格, Total_Data and Distinct_S1。在大型MySql表中獲取數值頻率分佈的有效方法
Total_Data有350萬行。字段:「S1」,「S2」,「S3」,「S4」
Distinct_S1有100萬行。字段:「S1」,「頻率」。 的「S1」Distinct_S1由出現在「S1」中的所有不同值組成Total_Data。
手頭任務: 的「頻率」 Distinct_S1爲S1 = 'XXYY'(假設)應包括倍 'XXYY' 的數目發生在Total_Data。
我用下面的查詢從一個python腳本(MySQLdb的進口)內完成手頭的任務:
cur.execute("update Distinct_S1 set frequency=(select count(*) from Total_Data where S1='%s') where S1='%s'"%(S1_val, S1_val)
上述查詢工作正常,但它似乎採取了很多的時間。還有其他更快的方法來實現嗎?
我跑你上面的查詢。 13分鐘後,結束了!非常感謝!附:我猜更新比插入更昂貴,'python-to-mysql-to-python transition'可能花費了很多時間。 – yang5 2012-07-21 18:49:13