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