重温 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改写,执行
重温 ShardingSphere 分布策略的更多相关文章
- Java中HashMap的hash分布策略的简单解释
趴源码是看到一段不可思议的代码,网上的解释似乎不大令人满意,因此稍微花点时间解读了一下,如有错误请指正 HashMap的桶是这样搞的 // 片段1 static final int hash(Obje ...
- Cassandra使用的各种策略
1. 背景介绍 Cassandra 使用分布式哈希表(DHT)来确定存储某一个数据对象的节点.在 DHT 里面,负责存储的节点以及数据对象都被分配一个 token.token 只能在一定的范围内取值, ...
- greenplum分布键的hash值计算分析
greenplum 数据分布策略 greenplum 是一个 MPP 架构的数据库,由一个 master 和多个 segment 组成(还可选配置一个 standby master),其数据会根据设置 ...
- KV存储系统
现在的KV存储系统都是分布式的,首先介绍Zookeeper——针对大型分布式系统的高可靠的协调系统. 开发分布式系统是件很困难的事情,其中的困难主要体现在分布式系统的“部分失败”.“部分失败”是指信息 ...
- 《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制 一.综述 SuperIO(SIO)定位 ...
- xmemcached的使用
转载 http://www.voidcn.com/blog/u010408365/article/p-4972896.html xmemcached主要特性 高性能 XMemcached同样是基于ja ...
- MySql学习(五) —— 数据库优化理论篇(一)
一.数据库管理系统 数据库管理系统(Database Management System, DBMS) 衡量是否是数据库的标准: ACID:是指在数据库管理系统(DBMS)中事务所具有的四个特性: 1 ...
- 《企业应用架构模式》(POEAA)读书笔记
原文地址:<企业应用架构模式>(POEAA)读书笔记作者:邹齐龙(技术-5013 什么是架构 Rolph Johnson认为:架构是一种主观上的东西,是专家级的项目开发人员对系统设计的一些 ...
- php版的redis操作库predis操作大全
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/146.html predis是php连接redis的操作库,由于它完全使用 ...
- Jedis下的ShardedJedis(分布式)使用方法(一)
原来项目中有用到Redis用作缓存服务,刚开始时只用一台Redis就能够满足服务,随着项目的慢慢进行,发现一台满足不了现有的项目需求,因为Redis操作都是原子性这样的特性,造成有时同时读写缓存造成查 ...
随机推荐
- Seaborn分布数据可视化---统计分布图
统计分布图 barplot() sns.barplot( x=None, y=None, hue=None, data=None, order=None, hue_order=None, estima ...
- C语言 04 基本数据类型
整数 整数就是不包含小数点的数字,整数包含以下几种类型: short :占用 2 个字节,16 个 bit 位. int:占用 4 个字节,32 个 bit 位,能够表示 -2^32 到 2^32 之 ...
- Qt搜索本机网卡对应网段的在线设备
需求:销售给我的需求是找出哪些IP是没有被占用的,所以我要先找出已经被占用的IP 项目是Qt开发的,所以在网上搜索了下,搜索到的实现方式都是:QHostInfo::lookupHost,但是这种方式, ...
- Qt 实现涂鸦板三:实现鼠标绘制矩形
.h 文件 #pragma once #include <QtWidgets/QWidget> #include "ui_xuexi.h" #include " ...
- Qt 从 QTransform 逆向解出 Translate/Scale/Rotate(平移/缩放/旋转)分析
QTransform 用于图形绘制,它定义了如何平移(translate).缩放(scale).切变(shear).旋转(rotate)或投射(project)坐标系.注意:QTransform 是作 ...
- Linux命令之查找CPU资源利用情况(lscpu和top详解)
1.lscpu命令:获取CPU架构完整详细信息,例如架构信息,CPU模式,CPU频率,CPU核心数.线程数.缓存大小. 在终端输入"lscpu": 参数详解: [Architect ...
- 19_非单文件名组件中VueComponent构造函数&重要的内置关系
总结: 关于VueComponent: 1.school组件本质上是一个名为VueComponent的构造函数,且不是程序员定义的,是Vue.extend生成的. 2.我们只需要写&l ...
- 力扣32(java)-最长有效括号(困难)
题目: 给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度. 示例 1: 输入:s = "(()"输出:2解释:最长有效括号子串是 &quo ...
- 【Serverless实战】B站每日自动签到&&传统单节点网站的Serverless上云
简介: Serverless好哇!这里将针对个人与生产两个应用方向的测评 使用Serverless实现自动获取每日B站的经验值,让你更快冲到LV6! 你的业务站点还是一台服务器All in One吗? ...
- 好的 MySQL 兼容性可以做到什么程度? PolarDB-X 如何做生态兼容
简介: 2003 年淘宝网成立之后,业务飞速发展,其后台架构也进行了多次迭代.2009 年之前,淘宝网后台的数据库架构是经典的 IOE 组合.IOE 是指 IBM 的小型机. Oracle 的数据库加 ...