
# 变更评估
分片变更前，可根据以下几点对分片变更做一个初步的评估，根据评估结果选择适当的新分片数, DDM实例规格和DN实例规格, 以及DN节点个数。
- 数据量：可用***show db status***命令来获得目前现网的数据量。
- DDM规格：当前DDM实例的CPU个数、内存大小、DDM节点数。
- DN规格：当前DN节点的vCPU个数和内存大小以及DN节点数。
- 业务情况：
  - 目前业务规模以及对日后增长趋势的预估。分片变更是重要的数据变更动作，如果DN节点的存储空间足够，建议您推迟执行分片变更操作
  
  - 在分片变更时，为了保证数据的一致性，不要进行分片键更新操作（包括全局二级索引）。
  
  - 在分片变更时，建议您在业务低峰期时段进行。
   
- 是否增加分片：增加分片意味着拆分规则发生变化，当前逻辑库中所有的数据都需要按照新拆分规则重新计算并移动位置，相比不增加分片的变更需要更大的资源占用，速度也相对较慢。
- 分片变更过程中是否要执行DDL：当前分片变更过程中，客户读写业务不受影响，但为了保证数据一致性，不允许在分片变更过程中执行DDL，请您合理规划。
客户案例：
某客户当前有DDM实例共4个节点，规格均为8U16GB，关联了6个数据节点（DN实例），数据量约12TB，1000亿条数据，7.3w张物理分表，业务量较大。
由于分片数变化就一定会引起数据重分布，需要迁移逻辑库的全部数据，而且每一条都需要经过重新路由，计算速度上会明显慢于分片数不变的变更。综合考虑客户业务，建议客户先将DDM实例规格升为32U64GB（DDM支持弹性扩缩容, 可以在变更结束后还原为之前的规格），再增加数据节点至12个并升级DDM引擎内核版本到最新版本。由于分片数没有发生变化，仅需要将一半的物理分片从原DN移动到新的DN节点上，且不涉及路由重计算。除非是单个物理表存放的数据量达到上限, 一般建议使用分片数不变, 增加数据节点的平移变更方式。
