对于已创建的polardb 启用x-engine 是同时支持通过 innodb 和 x-engine访问管理数据么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
对于已创建的PolarDB集群启用X-Engine后,是否支持通过InnoDB和X-Engine同时访问管理数据,以下是详细解答:
在已创建的PolarDB集群中启用X-Engine需要满足以下条件: - 数据库引擎版本为MySQL 8.0.1,且内核小版本需为8.0.1.1.31及以上。 - 数据库引擎版本为MySQL 8.0.2,且内核小版本需为8.0.2.2.12及以上。
如果满足上述条件,您可以通过PolarDB控制台动态开启X-Engine功能。
启用X-Engine后,PolarDB集群支持InnoDB和X-Engine两种存储引擎共存,并且可以分别管理不同的表数据。具体说明如下: - InnoDB引擎:继续用于存储热数据(频繁访问的数据),并保留其原有的事务处理能力和二级索引支持。 - X-Engine引擎:主要用于存储冷数据(低频访问的数据)或归档数据,提供更高的压缩率以降低存储成本。
这意味着,启用X-Engine后,您可以根据业务需求选择将某些表迁移到X-Engine,而其他表仍然使用InnoDB进行管理。
启用X-Engine后,PolarDB支持通过以下方式访问和管理数据: - 新建表:可以直接指定存储引擎为X-Engine
,例如:
CREATE TABLE table_name (...) ENGINE = X-Engine;
ALTER TABLE
语句将现有InnoDB表迁移到X-Engine,例如:
ALTER TABLE table_name ENGINE = X-Engine;
PolarDB在集成X-Engine时进行了技术优化,确保两种存储引擎能够高效协作: - 共享日志流:X-Engine的WAL(Write-Ahead Logging)日志流与InnoDB的REDO日志流合并,形成一套统一的日志流和传输通道。这种设计使得两种引擎可以共享底层分布式存储,同时保持高可用性和一致性。 - 共享存储:InnoDB和X-Engine共享同一个分布式块设备,数据文件分别以idb
(InnoDB)和sst
(X-Engine)格式存储。这种架构确保了两种引擎之间的无缝协作。
尽管PolarDB支持InnoDB和X-Engine共存,但在实际使用中需要注意以下限制: - DDL操作限制:在冷数据归档过程中,不支持对表进行修改(包括DDL和DML操作)。 - 查询性能差异:X-Engine表的查询性能可能低于InnoDB表,尤其是在高频访问场景下。因此,建议将X-Engine主要用于存储低频访问的冷数据。 - 兼容性问题:X-Engine与MySQL存在一定的兼容性限制,具体限制请参考官方文档中的使用说明。
启用X-Engine后,PolarDB支持通过InnoDB和X-Engine同时访问和管理数据。两种存储引擎可以共存于同一集群中,分别管理热数据和冷数据。通过合理配置和迁移策略,您可以充分利用X-Engine的高压缩率特性来降低存储成本,同时保留InnoDB的高性能事务处理能力。
如果您需要进一步调整X-Engine的内存资源比例或迁移表,请参考相关操作步骤。
阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。