空间碎片自动回收是数据库自治服务DAS进行空间自动优化的一种方式,开启该功能后,主实例会自动执行Optimize Table命令来回收表空间碎片,帮助您整理物理空间碎片。

前提条件

  • 实例已开启DAS专业版,详情请参见DAS专业版
  • 实例类型为RDS MySQL高可用版,且实例已成功创建14天或以上。
  • CPU规格不小于4核。
  • 物理表必须是InnoDB引擎。

优化前的检查项

为了保证在执行空间碎片自动回收操作时,减少对数据库性能和空间的影响,会进行如下检查:

  • 如下检测项如有一项或多项未通过,对应表的空间碎片自动回收操作将结束。
    • 剩余可用空间至少是需回收表的物理空间的3倍。
      说明 例如:需回收的表Table_1,该表的物理空间为30 GB,那么需要有90 GB的剩余可用空间,才可启动自动空间碎片回收
    • 表上无fulltext索引。
  • 如下检测项如有一项或者多项未通过,会等待1至5分钟,再次检查,直至运维窗口期结束。
    • 目标实例上没有备份任务。
    • 没有正在执行的表结构变更操作。
    • 查看实例的CPU使用率,预估空间碎片自动回收需花费的时间,确保前一天和上周同一时间段的CPU使用率低于70%,且执行前的CPU使用率低于80%。
      说明 例如:表的物理空间为90 GB,预计空间碎片回收需花费30分钟,并且计划12月10号凌晨3点执行,那么需确认如下3点:
      • 2020-12-9 03:00至03:30的CPU使用率需小于70%。
      • 2020-12-3 03:00至03:30的CPU使用率需小于70%。
      • 在执行前检测2020-12-9 03:00开始的CPU使用率需小于80%。
  • 在执行空间碎片自动回收操作前,会自动检测如下三点:
    • 需碎片回收的表上,没有执行时间超过3秒的SQL。
    • 无悬挂事务(持有锁但是超过15秒未提交的事务)。
    • 活跃会话数小于64。

操作步骤

  1. 登录。
  2. 在页面左侧导航栏单击实例监控,选择MySQL引擎后单击目标高可用实例,进入实例页面。
    实例监控
  3. 在实例页面的左侧导航栏单击自治中心,在页面右侧单击自治功能开关
    9
  4. 在弹出的设置对话框中,打开自治功能开关页签的空间碎片自动回收右侧的开关。
  5. 开启空间碎片自动回收后,设置以下参数,单击确定
    参数 说明
    表空间 物理表空间,默认值和最小值均为10 GB,最大值为100 GB。
    说明 单表空间过大会导致回收时间长,请根据实际业务情况选择合适的数值。
    碎片率 物理表的碎片率,默认值和最小值均为20%,最大值为99%。
    说明 碎片率过大会降低空间优化频率,请根据实际业务情况选择合适的数值。