Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何加速MySql上数百万条记录的更新查询_Python_Mysql - Fatal编程技术网

Python 如何加速MySql上数百万条记录的更新查询

Python 如何加速MySql上数百万条记录的更新查询,python,mysql,Python,Mysql,我有一个表,它有2700万个id列。 我计划更新另一个表中的平均值和计数,这需要很长时间才能完成 下面是更新查询数据库-MySQL,我正在使用Python连接到数据库 更新dna_统计数据 设置“U计数”= 选择计数* 来自dna B 其中B.music_id= B.标签=‘合唱’ 如果music_id=916094请确保您有一个cmposite索引 table dna column ( label, music_id) 和一个索引 table dna_statistics colu

我有一个表,它有2700万个id列。 我计划更新另一个表中的平均值和计数,这需要很长时间才能完成

下面是更新查询数据库-MySQL,我正在使用Python连接到数据库 更新dna_统计数据 设置“U计数”= 选择计数* 来自dna B 其中B.music_id= B.标签=‘合唱’
如果music_id=916094

请确保您有一个cmposite索引

 table dna   column ( label, music_id) 
和一个索引

table  dna_statistics column (music_id)

正如scaisEdge已经说过的,您需要检查两个表上是否有索引

我想补充一点,在scaisEdge的回答中,复合索引中列的顺序应该与比较它们的顺序相匹配

你曾经

    WHERE B.music_id = <music_id>
AND B.label = 'Chorus')
所以你们的索引应该由按音乐id、标签和非标签、音乐id顺序排列的列组成

我本想把它作为评论添加,但我离评论还有1个信誉点。

对于2700万id来说,更新条款不是一个好的解决方案

改用EXCHANGE分区


您可以编写一个python脚本,使其能够成批工作