使用优化Mysql更新查询性能

时间:2014-01-02 09:50:26

标签: mysql database performance query-optimization

我有一张表,我需要在其中添加一列,该表有数百万条记录。对于现有记录,我必须更新列值(对于每个记录将不同)。运行单个更新查询将花费大量时间。有没有办法可以用最少的锁定时间来实现这一点。

2 个答案:

答案 0 :(得分:0)

在你的情况下可以有两种方式,

  1. 如果您的附加列是派生列(值可以从现有列派生),那么简单的更新查询就足够了

  2. 如果它不是派生的,那么将所有值写入文件(可能是脚本)并将该文件作为新列导入到表中。 (或导出现有表并使用新列值修改该文件,然后导入)

  3. 以上两种方式,导入速度更快,锁定量更少。 希望有所帮助:)

答案 1 :(得分:0)

当无法在数据库中生成哈希值时,您唯一能做的就是运行单个更新。通过将多个更新批处理到一个事务中,可以获得一些性能改进。