SQL
逻辑表
水平拆分的数据库(表)的相同逻辑和数据结构表的总称。例:订单数据根据主键尾数拆分为 10 张表,分别是 t_order_0
到 t_order_9
,他们的逻辑表名为 t_order
。
真实表
在分片的数据库中真实存在的物理表。即上个示例中的 t_order_0
到 t_order_9
。
数据节点
数据分片的最小单元。由数据源名称和数据表组成,例:ds_0.t_order_0
。
绑定表
指分片规则一致的主表和子表。例如:t_order
表和 t_order_item
表,均按照 order_id
分片,则此两张表互为绑定表关系。绑定表之间的多表关联查询不会出现笛卡尔积关联,关联查询效率将大大提升。举例说明,如果 SQL 为:
SELECT i.* FROM t_order o JOIN t_order_item i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);
在不配置绑定表关系时,假设分片键 order_id
将数值 10 路由至第 0 片,将数值 11 路由至第 1 片,那么路由后的 SQL 应该为 4 条,它们呈现为笛卡尔积:
SELECT i.* FROM t_order_0 o JOIN t_order_item_0 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);
SELECT i.* FROM t_order_0 o JOIN t_order_item_1 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);
SELECT i.* FROM t_order_1 o JOIN t_order_item_0 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);
SELECT i.* FROM t_order_1 o JOIN t_order_item_1 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);
在配置绑定表关系后,路由的 SQL 应该为 2 条:
SELECT i.* FROM t_order_0 o JOIN t_order_item_0 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);
SELECT i.* FROM t_order_1 o JOIN t_order_item_1 i ON o.order_id=i.order_id WHERE o.order_id in (10, 11);
其中 t_order
在 FROM 的最左侧,ShardingSphere 将会以它作为整个绑定表的主表。 所有路由计算将会只使用主表的策略,那么 t_order_item
表的分片计算将会使用 t_order
的条件。故绑定表之间的分区键要完全相同。
广播表
指所有的分片数据源中都存在的表,表结构和表中的数据在每个数据库中均完全一致。适用于数据量不大且需要与海量数据的表进行关联查询的场景,例如:字典表。
单表
指所有的分片数据源中只存在唯一一张的表。适用于数据量不大且不需要做任何分片操作的场景。
文章列表
- Apache ShardingSphere-配置
- Apache ShardingSphere-路由引擎
- Apache ShardingSphere-解析引擎
- Apache ShardingSphere-行表达式
- Apache ShardingSphere-本地事务
- Apache ShardingSphere-改写引擎
- Apache ShardingSphere-执行引擎
- Apache ShardingSphere-归并引擎
- Apache ShardingSphere-强制分片路由
- Apache ShardingSphere-分页
- Apache ShardingSphere-分片
- Apache ShardingSphere-分布式主键
- Apache ShardingSphere-XA两阶段事务
- Apache ShardingSphere-Seata 柔性事务
- Apache ShardingSphere-SQL
- Apache ShardingSphere-3.2.3. 使用规范
- Apache ShardingSphere-3.2.2. 实现原理
- Apache ShardingSphere-3.2. 分布式事务
- Apache ShardingSphere-3.1.3. 使用规范
- Apache ShardingSphere-3.1.2. 内核剖析
- Apache ShardingSphere-3.1. 数据分片