当前位置: 首页 > news >正文

无锡个人网站建设为企业做网站赚钱吗

无锡个人网站建设,为企业做网站赚钱吗,银川网站建设报价,嘉兴seo外包分片策略 基本概念 分片键 用于分片的字段,是将数据库或表拆分的字段,比如,我可以使用user_id作为分片键将用户数据分到不同的表中,这里的user_id就是分片键,除了这种单字段分片,ShardingSphere还支持多…

分片策略

基本概念

分片键

用于分片的字段,是将数据库或表拆分的字段,比如,我可以使用user_id作为分片键将用户数据分到不同的表中,这里的user_id就是分片键,除了这种单字段分片,ShardingSphere还支持多个分片字段。SQL中如果没有分片字段,将执行全路由,也就是会把SQL发送到所有的数据分片上执行,性能较差。

分片算法
分片算法描述的是如何进行分片,需要结合分片键使用。比如我需要使用user_id对2取模进行分表,那么这里取模就是分片算法,SQL特殊查询如>、<、=、IN和Between会出现问题。

问题,如SQL

select * from t_order 

有2个库2个表

db1 -> t_order_1 , t_order_2

db2 -> t_order_1 , t_order_2

以取摸%2算法计算,偶数id分配在表2,库2,,奇数同理,查询=>8888,10000

由于没有重写路由算法,SQL会以全库全表形式查询,实际查询查询了4个数据库。

分片策略

分片策略是一种抽象的概念,实际分片操作的是由分片算法和分片健来完成的。

真正可⽤于分⽚操作的是分⽚键 + 分⽚算法,也就是分⽚策略。

分片算法

sharding-jdbc 提供了多种分片算法:

提供了抽象分片算法类:ShardingAlgorithm,根据类型又分为:精确分片算法、区间分片算法、复合分片算法以及Hint分片算法;

  • 精确分片算法:对应PreciseShardingAlgorithm类,主要用于处理 = 和 IN的分片;
  • 区间分片算法:对应RangeShardingAlgorithm类,主要用于处理 BETWEEN AND, >, <, >=, <= 分片;
  • 复合分片算法:对应ComplexKeysShardingAlgorithm类,用于处理使用多键作为分片键进行分片的场景;
  • Hint分片算法:对应HintShardingAlgorithm类,用于处理使用 Hint 行分片的场景;

1、精确分片算法 PreciseShardingAlgorithm

用于单个字段作为分片键,SQL中有 = 与 IN 等条件的分片,需要配合 StandardShardingStrategy 使⽤。

2、范围分片算法 RangeShardingAlgorithm
范围分片算法(RangeShardingAlgorithm)用于单个字段作为分片键,SQL中有 BETWEEN AND、>、<、>=、<= 等条件的分片,需要需要配合 StandardShardingStrategy 使⽤。/3、复合分片算法 ComplexKeysShardingAlgorithm
对应 ComplexKeysShardingAlgorithm,⽤于处理使⽤ 多键作为分⽚键 进⾏分⽚的场景,

(多个字段作为分片键),同时获取到多个分片健的值,根据多个字段处理业务逻辑。

包含多个分⽚键的逻辑较复杂,需要应⽤开发者⾃⾏处理其中的复杂度。

需要配合 ComplexShardingStrategy 使⽤。

需要在复合分片策略(ComplexShardingStrategy )下使用。

Hint 分片算法 HintShardingAlgorithm
Hint 分片算法(HintShardingAlgorithm)稍有不同

前面的算法(如StandardShardingAlgorithm)都是解析 SQL 语句, 提取分片值,并根据设置的分片算法进行分片。

4、Hint 分片算法 指定分⽚值而⾮从 SQL 中提取,而是手工设置的⽅式,进⾏分⽚的策略。

对于分⽚值⾮ SQL 决定,不是来自于分片建,甚至连分片建都没有 ,而由其他外置条件决定的场景,可使⽤Hint 分片算法 。

就需要通过 Java API 等方式 指定 分片值,这也叫强制路由、或者说 暗示路由。

例: 内部系统,按照员⼯登录主键分库,而数据库中并⽆此字段。

SQL Hint ⽀持通过 Java API 和 SQL 注释(待实现)两种⽅式使⽤。

标准分片策略

标准分片策略的使用场景:SQL 语句中有>,>=, <=,<,=,IN 和 BETWEEN AND 操作符,都可以应用此分片策略。

标准分片策略(StandardShardingStrategy),它只支持对单个分片健(字段)为依据的分库分表,

并提供了两种分片算法 PreciseShardingAlgorithm(精准分片)和 RangeShardingAlgorithm(范围分片)。

其中,精准分片算法是必须实现的算法,用于 SQL 含有 = 和 IN 的分片处理;

范围分片算法是非必选的,用于处理含有 BETWEEN AND 、>,>=, <=,<的分片处理。

RangeShardingAlgorithm 是可选的。

精准分片用于处理含有= 、in的分片处理。

范围分片 用于处理含有 BETWEEN AND>>=, <=<的分片处理。

**PreciseShardingAlgorithm**接口

处理 = 和 IN 查询:

其中Collection databaseNames 为分片库名称,PreciseShardingValue 为分片属性,其中 logicTableName 为逻辑表,columnName 分片健(字段),value 为从 SQL 中解析出的分片健的值。分表以上参数同理。

public class MyDBProcessShardingAlgorithm implements PreciseShardingAlgorithm<Long> {// databaseNames 重写分库规则@Overridepublic String doSharding(Collection<String> databaseNames, PreciseShardingValue<Long> shardingValue) {for (String key : databaseNames) {//TODO}
}// tableNames 重写分表规则@Overridepublic String doSharding(Collection<String> tableNames,PreciseShardingValue<Long> shardingValue) {for (String key : tableNames) {//TODO}}

**RangeShardingAlgorithm**接口

使用范围查询:

RangeShardingValue 这里取值方式稍有不同, lowerEndpoint 表示起始值, upperEndpoint 表示截止值。

public class MyDBRangeAlgorithm implements RangeShardingAlgorithm<Integer> {@Overridepublic Collection<String> doSharding(Collection<String> databaseNames, RangeShardingValue<Integer> rangeShardingValue) {HashMap<String> result = new HashMap<>();int lower = rangeShardingValue.getValueRange().lowerEndpoint();int upper = rangeShardingValue.getValueRange().upperEndpoint();for (int i = ; i <= upper; i++) {//TODO}return result;}
}
http://www.yayakq.cn/news/194769/

相关文章:

  • 网站建设纟金手指下拉壹陆可口可乐营销策划方案
  • 吉安做网站的网页美工设计的流程有哪些?
  • 网站首页ui大学生个人网站模板
  • 上海网站排名优化费用平面广告设计要用什么软件有哪些
  • 网站的建设方式有哪些wordpress 文字排版
  • 网站建设新媒体运营杨凌网站开发
  • 品牌网站建设哪里好wordpress无法安装
  • 申请免费网站哪个好做网站赚钱吗
  • 天津企业网站建设开发维护wordpress安装主题后不够
  • 佛山专业网站建设的公司html5标签
  • 南海佛山网站建设如何制作网页效果图
  • 建设淘宝客网站南昌模板建站代理
  • 如何学好网站建设qq网站代码
  • 福清做网站的公司贵州省铜仁市城乡建设局网站
  • 推荐几个没封的网站上海所有公司名称
  • 网站托管找东莞网站设计公司淘宝
  • 鲜花网站怎么做工程承包资质有哪些
  • 360平台怎么做网站优化微信怎么建立公众号小程序
  • 腾讯网站如何设计一个企业
  • 襄阳网站制作电脑培训学校在哪里
  • 贡井区建设局网站深圳ui设计
  • 网页网站设计与制作不想用原来的网站模板了就用小偷工具采集了一个可是怎么替换
  • 网站开发建设公司做响应式网站设计师需要做什么
  • 安徽龙山建设网站广西建设厅网证书查询
  • 做网站需要哪几个板块个人网页制作多少钱
  • 网站的设计 哪家网络公司好苏州建站模板系统
  • 使用循环视频做背景的网站Saas和wordpress有什么区别
  • 网站怎么添加链接代码大连承接网站制作
  • 宁夏水利厅建设处网站dedecms 网站搬家
  • 咖啡网站开发背景沈阳网站优化公司