3. 基本概念
3.1 基本表
相同结构的水平拆分数据库(表)的基本名称。 例:订单数据表 orders 根据用户 id 求余拆分为 8 张表,分别是 orders0 到 orders7,他们的基本表名为 orders。
3.2 实际表
在水平拆分的数据库中实际存在的物理表。 即上个示例中的 orders0 到 orders7。
3.3 表下标(表后缀)
上例中,实际表与基本表不一样的,就是表下标 0~7。也可以用不一样的后缀来表示不同的实际表,如 a,b,即 orders_a, orders_b。但数字下标处理起来明显会更加直接和方便。
3.4 关联表 (主表与从表)
关联表指存在主外键关系的主表与从表,它们一般是一对多的关系,按照一定的 DB 设计原则将数据存放到两张表中。如:orders,orders_item; users,users_item;
它们一般都是有外键关系关系(未必使用外键约束)。因此关联表的分片规则应使用一样的,同一个查询语句中,主从表应该有一样的下标(后缀)。
3.5 广播表
指所有的分片数据源中都存在的表,表结构及其数据在每个数据库中均完全一致。 适用于数据量不大且需要与海量数据的表进行关联查询的场景,例如:字典表。
分片中间件,应该支持更新广播表时,同一表的所有广播表都更新。
3.6 单表
指所有的分片数据源中仅唯一存在的表。 适用于数据量不大且无需分片的表。一般单表放在默认的数据库中,没有分片时,基本表即实际表,而数据源 ds 则默认路由到默认的 ds。
3.7 数据节点
数据分片的最小单元,由数据源名称和实际表组成,如:ds1.orders1。
3.8 完整的数据节点
完整的数据结点 (fullNodes),指某一基本表所涉及的所有数据库和对应的实际表。