ShardingSphere学习手册

https://shardingsphere.apache.org/document/legacy/4.x/document/cn/overview/

概念&功能

.1 数据分片

.1.1 核心概念
  • SQL
    • 逻辑表Logic Table
    • 真实表Actual Table
    • 数据节点Data Node
    • 绑定表Binding Table
        指分片规则一致的主表和子表。绑定表之间的分区键要完全相同。
    • 广播表Broadcast Table
        指所有的分片数据源中都存在的表,表结构和表中的数据在每个数据库中均完全一致。适用于数据量不大且需要与海量数据的表里德关联查询的场景,例如:字典表。
  • 分片Sharding
    • 分片键Sharding Key
    • 分片算法Sharding Algorithm
      • 精确分片算法PreciseShardingAlgorithm
      • 范围分片算法RangeShardingAlgorithm
      • 复合分片算法ComplexShardingAlgorithm
      • Hint分片算法HintShardingAlgorithm
    • 分片策略Sharding Strategy
    • SQL Hint
  • 配置Configuration
    • 分片规则Sharding Rule
        分片规则的总入口,包括数据源、表、绑定表和读写分离
    • 数据源配置Data Source Configuration
        真实数据源列表
    • 表配置Tables Configuration
        逻辑表名称、数据节点与表分片规则的配置
    • 数据节点配置Data Node Configuration
        用于配置逻辑表与真实表的映射关系。可分为均匀分布和自定义分布两种形式。
      • 均匀分布Uniform Distribution
    • 分片策略配置Sharding Strategy Configuration
      • 数据源分片策略
      • 表分片策略
    • 自增主键生成策略
        通过在客户端生成自增主键替换以数据库库原生自增主键的方式,做到分布式主键无重复。
.1.2 内核剖析
.1.3 使用规范
  • SQL
    • 支持项
    • 不支持项
      • 路由至多数据节点
          不支持CASE WHEN、HAVING、UNION (ALL),有限支持子查询。
      • 对分片键进行操作
          运算表达式和函数中的分片键会导致全路由。由于ShardingSphere只能通过SQL字面提取用于分片的值,因此当分片键处于运算表达式或函数中时,ShardingSphere无法提前获取分片键位于数据库中的值,从而无法计算出真正的分片值。当出现此类分片键处于运算表达式或函数中的SQL时,ShardingSphere将采用全路由的形式获取结果。
  • 分页Pagination
    • 分页性能Pagination Performance
      • 性能瓶颈Performance Bottleneck
      • ShardingSphere的优化
    • 分页方案优化Pagination Solution Optimization
    • 分页子查询Pagination Sub-query
        MySQL和PostgreSQL都支持LIMIT分页,无需子查询:
.1.4 其他功能
  • 行表达式Inline Expression
      行表达式的内容使用的是Groovy的语法,Groovy能够支持的所有操作,行表达式均能够支持。
  • 分布式主键Distributed Primary Key
    • 实现动机
    • 内置的主键生成器
      • UUID
      • SNOWFLAKE
      • LEAF
  • 强制分片路由Sharding Hint
      ShardingSphere使用ThreadLocal管理分片键值。可以通过编程的方式向HintManager中添加分片条件,该分片条件仅在当前线程内生效。

.2 读写分离Read-write splitting

.2.1 核心概念Core Concept
  • 主库Master Database
      添加、更新以及删除数据操作所使用的数据库,目前仅支持单主库。
  • 从库Slave Database
  • 主从同步Master-Slave Replication
  • 负载均衡策略Load Balance Strategy
.2.2 核心功能Core Features
  • 提供一主多从的读写分离配置,可独立使用,也可配合分库分表使用。
  • 独立使用读写分离支持SQL透传。
  • 同一线程且同一数据库连接内,如有写入操作,以后的读操作均从主库读取,用于保证数据一致性。
  • 基于Hint的强制主库路由。
.2.3 不支持项Unsupported Items

用户手册

.1 Sharding-JDBC

.1.1 使用手册

https://shardingsphere.apache.org/document/legacy/4.x/document/cn/manual/sharding-jdbc/usage/
  使用示例:
https://github.com/apache/shardingsphere-example

.1.2 配置手册

https://shardingsphere.apache.org/document/legacy/4.x/document/cn/manual/sharding-jdbc/configuration/

.1.3 JDBC不支持项

https://shardingsphere.apache.org/document/legacy/4.x/document/cn/manual/sharding-jdbc/unsupported-items/

.2 Sharding-UI

https://shardingsphere.apache.org/document/legacy/4.x/document/cn/manual/sharding-ui/
  Sharding-UI是ShardingSphere的一个简单而有用的web管理控制台。它用于帮助用户更简单的使用ShardingSphere的相关功能,目前提供注册中心管理、动态配置管理、数据库编排等功能。

FAQ

https://shardingsphere.apache.org/document/legacy/4.x/document/cn/faq/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值