本文介绍为PolarDB集群一键开启高压缩引擎(X-Engine)的前提条件及操作步骤等内容。

背景信息

PolarDB集群默认的存储引擎为InnoDB ,如何让已购买集群的用户能够享受到低成本数据存储的红利是亟待解决的问题。因此,PolarDB提供了一键开启高压缩引擎(X-Engine)功能,用户可以直接在已购买的集群上一键开启高压缩引擎(X-Engine),并通过ALTER语句将InnoDB引擎下的表转存至X-Engine引擎,具体操作请参见本文中的操作步骤。这种双引擎(InnoDB和X-Engine)混合部署模式,在不影响InnoDB引擎使用的前提下,可以对集群的冷数据进行压缩存储并转存到X-Engine引擎中,节省了70%的存储成本。

在Sysbench测试场景下,与集群版的单InnoDB引擎相比较,这种双引擎(InnoDB和X-Engine)混合部署方式,使集群整体性能下降控制在20%以内。当业务数据的存储空间达到一定规模(几百GB或几百TB),在集群整体性能可控范围内,用户能明显地享受到降本红利。

前提条件

  • PolarDB集群系列为集群版,集群版本需为PolarDB MySQL版8.0.1版本且修订版本为8.0.1.1.31及以上。您可以通过查询版本号来确认集群版本。
  • PolarDB集群节点规格不小于16 GB。
  • PolarDB集群的节点规格需要保持一致。
  • PolarDB集群未加入全球数据库网络(GDN)。

注意事项

  • PolarDB集群开启高压缩引擎(X-Engine)后,为避免已存储在高压缩引擎(X-Engine)中的表访问异常,不支持关闭该功能。
  • PolarDB集群开启高压缩引擎(X-Engine)后,不支持加入全球数据库网络(GDN)。
  • 开启高压缩引擎(X-Engine)会自动重启集群,重启集群的过程中,会出现30s以内的连接闪断。建议您在业务低谷期执行该操作并确保应用具备重连机制。

操作步骤

  1. 开启高压缩引擎(X-Engine)
    1. 登录PolarDB控制台
    2. 在控制台左上角,选择集群所在地域。
    3. 找到目标集群,单击集群ID。
    4. 在左侧导航栏选择配置与管理 > 高压缩引擎。单击一键开启一键开启高压缩引擎(X-Engine)
    5. 设置X-Engine比例对话框中,您可以根据实际业务场景自定义调整高压缩引擎(X-Engine)的占比,单击确定
      三种典型场景下的存储引擎占比配置如下,供您参考。您可根据实际业务场景进行配置。
      适用场景InnoDB引擎占比(百分比)X-Engine占比(百分比)
      使用InnoDB引擎存储热数据,X-Engine引擎存储冷数据,且归档后的冷数据基本不会被访问。8020
      使用InnoDB引擎存储热数据,X-Engine引擎存储冷数据,且归档后的冷数据仍然会被更新或查询。5050
      使用InnoDB引擎存储少量表,X-Engine引擎存储大量表,且数据会被更新或查询。2080
    6. 确认对话框中,单击确定
  2. 将InnoDB引擎下的表转存至X-Engine引擎
    1. 使用DMS、客户端或命令行连接数据库,具体操作请参见连接数据库集群
    2. 执行以下命令,将InnoDB引擎下的表转存至X-Engine引擎。
      ALTER TABLE <数据库名>.<表名> ENGINE xengine;
      说明 使用ALTER命令将InnoDB引擎下的表转存至X-Engine引擎的过程中,会阻塞转换涉及的表的写入操作(DML和DDL)。
      示例如下:
      ALTER TABLE test.sbtest1 ENGINE xengine;

其他操作

如果您需要在双引擎(InnoDB和X-Engine)混合部署模式下,创建位于X-Engine引擎的表,您需要在创建表时指定X-Engine引擎。示例如下:
create table t1(c1 int primary key , c2 int)ENGINE=xengine;