我有一个包含2800万行的MariaDB表。我需要在一列中用一个新值更新所有行(本地)。下面是Python中用于批更新的代码:
update_query = "UPDATE table SET column = %s WHERE `index` = %s"
%time cursor.executemany(update_query, update_data)
字符串column
有一个索引,而index
是主键。
当我使用一个100,000行的批处理时,运行executemany()
需要50秒。我不确定这是非常慢还是正常的。如果它很慢,我不知道从哪里开始加速。
1条答案
按热度按时间ctehm74n1#
与
INSERT
不同,executemany()
不能自动批处理UPDATE
查询,因此瓶颈是执行100,000个查询。而使用
INSERT INTO ... ON DUPLICATE KEY UPDATE ...
。这将自动进行批处理。字符串