• 重温 ShardingSphere 分布策略


    ShardingSphere——分片及策略:
    https://blog.csdn.net/weixin_38910645/article/details/107538848


    Sharding-JDBC:可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。

    Sharding-Proxy:定位为数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。

    Sharding-Sidecar:定位为Kubernetes或Mesos的云原生数据库代理


    Sharding-Sphere 配置文件支持properties,yml,Spring XML,JavaBean 多种配置方式。

    配置信息包括:

    1,Datasource 名称
    2,每个Datasource的连接信息
    3,分库策略
    4,分表策略(单个表,多个表策略,主键策略)
    5,读写分离配置
    6,数据治理配置

    分片策略:
    一,分片键 用于分片的数据库字段,是将数据库(或者表)拆分的关键字段。(原始表-分片表)
    二,分片算法 通过分片算法将数据分片。


    1,行表达策略 InlineShardingStrategy 提供对SQL语句中的=和IN的分片操作支持,只支持单分片键。
    2,标准策略 StandardShardingStrategy 只支持单分片键,提供PreciseShardingAlgorithm和RangeShardingAlgorithm两个分片算法。
    PreciseShardingAlgorithm是必选的,用于处理=和IN的分片。RangeShardingAlgorithm是可选的,用于处理BETWEEN AND, >, <, >=, <=分片,如果不配置RangeShardingAlgorithm,SQL中的BETWEEN AND将按照全库路由处理。

    3,复合策略(Complex)
    ComplexShardingStrategy支持多分片键,由于多分片键之间的关系复杂,因此并未进行过多的封装,而是直接将分片键值组合以及分片操作符透传至分片算法,完全由应用开发者实现,提供最大的灵活度。

    4,Hint强制路由(Hint - 英文为暗示的意思)
    有些SQL语句比较复杂比如说有 INSERT INTO … SELECT … FROM,这个时候sqlparser并不支持的时候。这种情况下,可以通过sharding-jdbc的Hint分片策略来实现各种sharding-jdbc不支持的语法的限制。
    因为Hint分片策略是绕过SQL解析的,所以对于这些比较复杂的需要分片的查询,采用Hint分片策略性能可能会更好。
    hint策略需要实现org.apache.shardingsphere.api.sharding.hint.HintShardingAlgorithm接口。

    不支持CASE WHEN、HAVING、UNION (ALL) 类似语法。


    连接器,分析器,优化器,执行器,

    连接器,SQL解析,查询优化,SQL路由,SQL改写,执行

  • 相关阅读:
    视频流媒体服务器网络硬盘录像机NVR接入/解码/转发能力解析
    流媒体服务器安装失败/程序启动错误等问题解决方案
    监控摄像头如何用作网络直播?
    数据库之单表查询
    数据库之表与表之间的关系
    数据库之完整性约束
    数据库之数据类型
    数据库之增删改查操作
    数据库之基本操作和存储引擎
    数据库之数据库基础及安装
  • 原文地址:https://www.cnblogs.com/xcj26/p/14821139.html
Copyright © 2020-2023  润新知