青海省公路建设市场信用信息服务网站,wordpress 每页文章数,上海建设网站公,在西安建设工程交易中心网站文章目录什么是ShardingSphere-JDBC#xff1f;Sharding-Jdbc常见概念术语数据节点Node真实表逻辑表绑定表广播表数据库表分片#xff08;水平库、表#xff09;分片键 (PartitionKey)行表达式分片策略 InlineShardingStrategy#xff08;必备#xff09;标准分片策略Stan…
文章目录什么是ShardingSphere-JDBCSharding-Jdbc常见概念术语数据节点Node真实表逻辑表绑定表广播表数据库表分片水平库、表分片键 (PartitionKey)行表达式分片策略 InlineShardingStrategy必备标准分片策略StandardShardingStrategy需了解复合分片策略ComplexShardingStrategy需了解Hint分片策略HintShardingStrategy需了解不分片策略 NoneShardingStrategy需了解什么是ShardingSphere-JDBC
它使用客户端直连数据库以jar包形式提供服务无需额外部署和依赖可理解为增强版的JDBC 驱动完全兼容JDBC和各种ORM框架如JPAHibernateMybatis或直接使用JDBC支持任何第三方的数据库连接池如DBCPC3P0BoneCPHikariCP 等⽀持任意实现 JDBC规范的数据库目前支持MySQLPostgreSQLOracleSQLServer 以及任何可使用 JDBC访问的数据库采用无中心化架构与应用程序共享资源适用于 Java 开发的高性能的轻量级 OLTP 应用
Sharding-Jdbc常见概念术语
数据节点Node
数据分片的最小单元由数据源名称和数据表组成 比如ds_0.product_order_0某个库中的某个表
真实表
在分片的数据库中真实存在的物理表 比如订单表 product_order_0、product_order_1、product_order_2
逻辑表
水平拆分的数据库表的相同逻辑和数据结构表的总称 比如订单表 product_order_0、product_order_1、product_order_2逻辑表就是product_order
绑定表
指分片规则⼀致的主表和子表 比如product_order表和product_order_item表均按照order_id分片则此两张表互为绑定表关系 绑定表之间的多表关联查询不会出现笛卡尔积关联关联查询效率将大大提升
广播表
指所有的分片数据源中都存在的表表结构和表中的数据在每个数据库中均完全⼀致 适用于数据量不⼤且需要与海量数据的表进⾏关联查询的场景例如字典表、配置表
数据库表分片水平库、表
包含分片键和分片策略
分片键 (PartitionKey)
⽤于分片的数据库字段是将数据库(表)水平拆分的关键字段比如prouduct_order订单表根据订单号 out_trade_no做哈希取模则out_trade_no是分片键
除了对单分片字段的支持ShardingSphere也⽀持根据多个字段进行分片多分片键
行表达式分片策略 InlineShardingStrategy必备
只支持【单分片键】使用Groovy的表达式提供对SQL语句中的和IN的分片操作支持 可以通过简单的配置使用无需自定义分片算法从而避免繁琐的Java代码开发
prouduct_order_$-{user_id % 8}表示订单表根据user_id模8⽽分成8张表表名称为prouduct_order_0到prouduct_order_7
标准分片策略StandardShardingStrategy需了解
只支持【单分片键】提供PreciseShardingAlgorithm和RangeShardingAlgorithm两个分片算法PreciseShardingAlgorithm 精准分片是必选的用于处理和IN的分片RangeShardingAlgorithm 范围分配是可选的用于处理BETWEEN AND分片如果不配置RangeShardingAlgorithm如果SQL中用了BETWEEN AND语法则将按照全库路由处理性能下降
复合分片策略ComplexShardingStrategy需了解
⽀持【多分⽚键】多分片键之间的关系复杂由开发者自己实现提供最大的灵活度 提供对SQL语句中的 IN和BETWEEN AND的分片操作支持
Hint分片策略HintShardingStrategy需了解
这种分片策略无需配置分片健分片健值也不再从 SQL中解析外部⼿动指定分片健或分片库让 SQL在指定的分库、分表中执行用于处理使用Hint行分片的场景通过Hint而非SQL解析的方式分片的策略Hint策略会绕过SQL解析的对于这些比较复杂的需要分片的查询Hint分片策略性能可能会更好
不分片策略 NoneShardingStrategy需了解
不分片