MySQL:将分区添加到现有表(带有数据)?

All*_*len 4 mysql

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

我的应用程序不能停止,同时会插入一些记录吗?我可以在表中添加分区吗?会不会影响我的申请。例如在分区期间锁定一些行。

我在网上搜索,但没有找到太多关于将分区添加到现有表的故事的资料?

谢谢你。

And*_*ath 5

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

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