采用水平分表的方式,将业务数据表的元组打散存储到各个节点中。这样带来的好处有,查询中通过查询条件过滤不必要的数据,快速定位到数据存储位置,可极大地提升数据库性能。
水平分表方式即将一个数据表内的数据,按合适分布策略分散存储在多 个节点内,AntDB 支持表 3-3 所示的数据分布策略。用户可在创建表时增加DISTRIBUTE BY 参数,来对指定的表应用数据分布功能。

1.流程设计
自定义数据分片是 AntDB 支持的多种数据分片形式中的一种,并且比较特殊,分片函数是用户自定义的,而非系统自带。在支持 Hash(column)、modulo(column)、random、replication 四种分区方式的基础上增加了自定义函数的方式进行分片,大大提升了数据灵活分片的能力,如图 3-8 所示。

2.实现说明
自定义分片语法:Create table tablename column_lists distribute by functionname (column_lists),其中 functionname() 是用户自定义的函数。
分片函数返回值校验:自定义分区函数的返回值须为整数( smallint、integer、bigint 均可),自定义分区函数的参数须为表的可见字段(不可为隐藏字段或固定值),且同样参数返回结果必须不可变。
自定义分片数据分发:将一张分布式表按照用户自定义函数分片规则水平拆分成多个数据片,分散在多个数据存储节点中。
自定义分片与其他形式数据分片方式转换:可以通过修改表的分片方式, 将自定义分片表向其他分片形式转换,且表数据自动按照新的分片规则进行重平衡。
关于AntDB数据库
AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。




