首页 > 解决方案 > 如何在 MySQL 上每天进行多表更新查询

问题描述

我正在致力于自动化构建数据库的过程。这是一个在构建后需要每日更新的数据库。

这个数据库有 51 张表,分为 3 个 schema(每个 schema 有 17 个表),总共有 2000 万条记录,每条记录的 PK 为 manage_number 。

我每天需要更新2000~3000条记录,但是不知道用什么方法。

  1. 为 PK 索引制作一个表

这是在同一个数据库中分别创建带PK的表和带PK的表名的方法。创建一个表,其中包含有关 manage_number 存储在哪个表中的元数据。目前,应用了这种方法。问题是构建时间比以前长了 5-6 倍(从 2 分钟增加到 12 分钟)。

  1. 多表更新查询

这是如何对具有相同架构的 17 个表执行更新查询。但是,在这种情况下,FROM 子句中的负载预计会非常高,我认为这会对服务器造成负担。

更新查询可能如下所示。

UPDATE table1, table2, table3, ..., table17
SET data_here
WHERE manage_number = 'TARGET_NUMBER';

请分享哪种方式更好,或者您是否有更好的方式。

谢谢你。

标签: mysqldatabasedatabase-designarchitecture

解决方案


推荐阅读