在ADB中,实时更新表必须包含主键字段。实时更新表在插入/删除(INSERT/DELETE)数据时,可通过主键来判断相同记录,以确定唯一记录。
主键组成: 业务 ID + 一级分区键 + 二级分区键。
某些情况下,业务 ID 会与一级分区键相同。如果表记录数特别大,从存储空间和 INSERT 性能考虑,一定要减少主键的字段数。
更新数据:AnalyticDB不支持update操作,可以通过主键覆盖的方式进行insert操作来实现和update同等的功能。
ADB的事实表支持二级分区策略,一级分区采用 HASH 算法,二级分区采用 LIST 算法。通过二级分区策略,ADB可将表数据分布到不同的节点。
在ADB中,设置一级分区的目的是将数据均匀分散到多个 CN 节点当中,以便充分发挥ADB分布式计算的能力。设置二级分区的目的是将数据分散到不同的存储文件上,与传统数据库的分区相似。
二级分区支持自动清除历史数据。在使用ADB的过程中,您必须防止垃圾数据自动清除有效数据。
AanlyticDB 内部采用 LIST 算法来划分二级分区,会自动删除多余的分区。
在ADB中,数据存储支持按一列或多列进行排序(先按第一列排序,第一列相同情况下,使用第二列排序),以保证该列中值相同或相近的数据保存在磁盘同一位置,这样的列称之为聚集列。
在ADB中,数值类型的处理性能远高于字符串类型,其原因如下:
数值类型的值定长、占用内存少、存储空间小。 数值类型计算更快,尤其是 JOIN 查询时。
在ADB中查询数据时,提前进行 optimize table 操作,可提升查询性能。
ADB支持的 Local-Merge(简称 LM)和 Full MPP Mode(简称 MPP)计算引擎。
当开启 MPP 引擎时,分析型数据库MySQL版自动对查询(Query)进行路由,并将 LM 引擎不支持的查询路由到 MPP 引擎,以兼顾分析型数据库MySQL版的性能和通用性。
在新建ADB数据库前,您需要从数据量QPS(Query per Second)和性能 RT(Response Time)两个维度对数据库所要占用的资源进行评估,以给ADB数据库分配最合理的资源量。
ADB分为高性能和大存储两种机型,对单个物理机器的存储规格如下:
高性能模型:1 TB/物理机器。 大存储:10 TB/物理机器。
如果ADB的数据量在百亿以上,物理机器在100台以上,则可以考虑选择大存储模式。但如果查询性能要求较高,则建议选择高性能模式。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。