mysql - 如何向数据库表中添加新列,表中存在大量数据

标签 mysql sql database-performance

我的表中有大量数据,例如 TB 数据的数量。在该表中添加新列时需要花费大量时间。 假设发布了 2.0,如果我们希望将每个客户的数据库升级到版本 2.0,我们将在表中添加新列。在这个升级过程中,每个客户都花费了大量的时间。根据我们的要求,每个版本我们都会向数据库表中添加新列。每个客户都有 TB 的数据。 我需要在升级数据库时对此进行一些 poc,它不会花费太多时间。 是否有任何解决方案可以动态添加列而不需要花费太多时间。

最佳答案

计划A:使用pt-online-schema-change

计划 B:在与当前表具有相同 PRIMARY KEY 的“并行”表中添加新列。

计划 C:升级到 MySQL 8.0 或 MariaDB 10.3,以便您可以拥有 ALGORITHM=INSTANT

计划 D:一次性添加 JSON 列(通过计划 A/B/C)。此后,您可以向其中添加新的“列”。

“添加列是经常发生的事情”- 设计不佳。向我们展示架构,以便我们讨论具体的替代方案。

关于mysql - 如何向数据库表中添加新列,表中存在大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59872400/

相关文章:

mysql - 如何在案例条件mysql上定义别名

sql-server-2012 - 清除等待统计信息的安全性如何

mysql - 通过大量连接提高 MySQL 查询速度

java - 如何在 Eclipse 中打包所需的外部库和源

mysql - 从两个表中获取指定格式的数据

mysql - 是否可以将 MySQL Workbench 连接到内存数据库中的 H2?

sql - 如何避免过多的连接?

.net - 如何在只执行一次命令时检查 DBNull?

sql - 多对多关系来确定用户是否喜欢一个帖子

mysql - 一个巨大的 SQL 语句还是许多小的 SQL 语句?