更新时间:2023-11-06 gmt 08:00
广播表和单表的使用场景-凯发k8国际娱乐官网入口
单表
ddm管理控制台不提供单表创建操作,用户可以通过mysql客户端或应用程序连接到ddm实例后自行创建。
如果一张表的数据,数据量预估在1000万条以下,且没有与其他拆分表进行关联查询的需求,建议将其设置为单表类型,存储在默认分片中。
单表样例,不做任何拆分:
create table single( id int not null auto_increment comment '主键id', name varchar(128), primary key(id) );
广播表
在业务数据库中,存在一些数据量不大,更新频度低,但常常需要用来做关联查询的表。
为了支持这类表与拆分表进行join操作,ddm设计了一类“广播表”,具有以下特点:
- 广播表在各分片中数据一致。数据插入、更新与删除会实时在每一个分片中执行一次。
- 对广播表的查询,仅在一个分片中执行。
- 任何表都可以与广播表进行join操作。
- 使用广播hint的前提是需要确保表的存在性。
例如:
电商企业的订单管理系统,需要查询统计某个地区的订单数据。假如涉及到地区表与订单流水表进行join查询,由于订单数据量庞大,订单流水表需要分片存储,因此可以考虑将地区表设计为“广播表”,避免跨库join操作。
广播表创建样例:
create table broadcast_tbl ( id int not null auto_increment comment '主键id', name varchar(128), primary key(id) ) engine=innodb default charset=utf8 collate=utf8_unicode_ci broadcast;
- 广播表操作 、不带分片条件的sql语句等全表扫描类语句,并发不要太高(或者选择在业务低峰时进行),否则可能报“后端rds连接数可能不够用”的错误。
- 广播表的插入操作,会在每个分片的表中进行插入。如果此表数据量太大(超过100万条数据),不建议使用广播表,以免占用太多数据空间,可以使用拆分表。
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨