公众号merlinsea
- 数据节点Node
- 数据分⽚的最⼩单元,由数据库名称和数据表组成
- ⽐如:ds_0.product_order_0 【表示ds_0数据库中的produce_order_0表】
- 真实表
- 在分⽚的数据库中真实存在的物理表
- ⽐如订单表 product_order_0、product_order_1、product_order_2
- 逻辑表
- ⽔平拆分的数据库(表)的相同逻辑和数据结构表的总称
- ⽐如订单表 product_order_0、product_order_1、product_order_2,逻辑表就是product_order。这些逻辑表都是有相同的字段 组成,只是每张表中的数据不一样而已。
- 逻辑表和DO类上的@Table()中的字段名称要一致
- 绑定表
- 指分⽚规则⼀致的主表和⼦表
- ⽐如product_order订单表和product_order_item订单明细表,均按照order_id分⽚,则此两张表互为绑定表关系。例如在电商的业务领域中,订单id=1-1000的数据放入product_order_0的订单表和product_order_item_0的订单明细表中,这样就可以知道所有在 product_order_0表中的数据明细都是在product_order_item_0中,这样就不需要遍历每一张订单明细表。
- 绑定表之间的多表关联查询不会出现笛卡尔积关联,关联查询效率将⼤⼤提升。
- 广播表
- 指所有的分⽚数据源中都存在的表,表结构和表中的数据在每个数据库中均完全⼀致。属于冗余表类型。
- 适⽤于数据量不⼤且需要与海量数据的表进⾏关联查询的场景,比如字典表和配置表等。
- 分片键PartitionKey
- ⽤于分⽚的数据库字段,是将数据库(表)⽔平拆分的关键字段
- ⽐如prouduct_order订单表,根据订单号 out_trade_no做哈希取模,则out_trade_no是分⽚键。
- 除了对单分⽚字段的⽀持,ShardingSphere也⽀持根据多个字段进⾏分⽚。
下面介绍一下我们的算法训练营,目前算法已经整理到了50多题了,如果大家对算法刷题有困难的可以找我帮忙,我带你手把手刷题。
我后期还会推出数据结构java版本,下面我给出我的目录大纲,大概今年九月份到十月份推出~