使用优化Mysql更新查询性能
我有一个表,我需要在其中添加一列,该表有数百万条记录。对于现有记录,我必须更新列值(每个记录的列值不同)。运行单个更新查询将花费大量时间。是否有一种方法可以用最少的表锁定时间来实现这一点。在您的情况下,有两种方法使用优化Mysql更新查询性能,mysql,database,performance,query-optimization,Mysql,Database,Performance,Query Optimization,我有一个表,我需要在其中添加一列,该表有数百万条记录。对于现有记录,我必须更新列值(每个记录的列值不同)。运行单个更新查询将花费大量时间。是否有一种方法可以用最少的表锁定时间来实现这一点。在您的情况下,有两种方法 如果您的附加列是派生列(值可以从现有列派生),那么简单的更新查询就足够了 如果不是派生的,则将所有值写入文件(可能是脚本),并将该文件作为新列导入表中。(或导出现有表并使用新列值修改该文件,然后导入) 通过以上两种方式,导入速度更快,锁定量更少。 希望有帮助:)当无法在数据库中生成哈希
希望有帮助:)当无法在数据库中生成哈希值时,您唯一能做的就是运行单个更新。通过将多个更新批处理到一个事务中,您可以获得一些性能改进。您希望使用哪些值更新列?连续整数,随机数,还有其他的…?你需要详细说明。什么样的价值?应该如何计算?它依赖于什么?@Joni它将是一个varchar字段。@peterm它基本上是一个散列,将使用bcrypt-algo(用ruby、应用程序逻辑实现)生成。