MySQL:向现有表(包含数据)添加分区?

标签 mysql

我有一个包含 100 万条记录的表。因为我的查询将基于一列(32 个常量)。我正在尝试添加 32 个分区使用类型列表。

我的应用程序停不下来,同时会插入一些记录吗?我可以在表中添加分区吗?对我的申请有影响吗?比如在分区时锁定一些行。

我在网上搜索了一下,没有找到太多关于Add partition to existing table的资料?

谢谢。

最佳答案

在不对应用程序产生任何影响的情况下执行此类表迁移的常见方法是遵循以下步骤:

  1. 创建一个复制表,其中包含您需要的修订(在您的情况下是分区)
  2. 在原始表上设置一个触发器以插入到复制表中(这将在短时间内充当一种复制形式)
  3. 开始从原始表迁移到新表,迁移速度不会妨碍您的应用程序(比如一次 1000 行)
  4. 迁移完成后,您的表将完美同步,此时您可以修改应用程序以使用新表开始读写。
  5. 如果您对您的应用可以使用新表正常运行感到满意,请删除旧表。
  6. 迁移完成,喝杯啤酒。

关于MySQL:向现有表(包含数据)添加分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538183/

相关文章:

php - 使用 PHP 导入 Excel 到 MySQL 到单列

mysql - 只更新sql中的日期

MySqlClient : SaveChanges in ASP. NET 不更新数据库表

mysql - 如何根据条件选择行(另一个表中的多条记录)

php - 向php提交多个同名字段

mysql - 使用 Doctrine Query Builder 或 MySQL 查询连接 3 个以上的表

MYSQL语句问题请指出

php - 多用户单向支持票务系统

php - MySQL中如何从多个表中获取记录

mysql - 使用 SQL 对多个变体行进行价格搜索