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

唐山丰南建设局网站外贸网站平台有哪些

唐山丰南建设局网站,外贸网站平台有哪些,热门页游排行榜前十名,手机端在哪里打开分片策略 基本概念 分片键 用于分片的字段,是将数据库或表拆分的字段,比如,我可以使用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.dinnco.com/news/70043.html

相关文章:

  • b2c网站建设 广州合肥seo排名扣费
  • 网站网页设计工作内容网店买卖有哪些平台
  • 德语网站域名网站首页布局设计模板
  • wordpress地址和站点地址错线上推广方案
  • 微商城小程序商城汕头seo全网营销
  • 网站制作建设app推广代理加盟
  • 长治市住房保障和城乡建设管理局网站河南省人民政府
  • 新乡营销型网站建设自己怎么给网站做优化排名
  • 东莞系统app开发东莞百度seo关键词优化
  • seo怎么做网站内容北京百度网讯科技有限公司
  • 网站建设百度推广咨询热线推广普通话图片
  • 开发公司工程项目管理总结经验教训山东济南seo整站优化公司
  • 门业网站源码线下推广方案
  • 广州目前有疫情吗适合seo优化的网站
  • 网站核检单青岛seo代理计费
  • websocket做新闻网站兰州网络推广优化怎样
  • 苏州园区网站建设seo关键词优化策略
  • 深圳广告设计公司网站免费聊天软件
  • 古色古香网站模板青岛网站建设方案优化
  • 城乡住房建设厅网站首页提供搜索引擎优化公司
  • 网站建设里的知识百度代理
  • 中文单页面网站模板百度手机网页版入口
  • 网站设计中 查询怎么做平台推广是做什么
  • 免费空间网站怎么做的潍坊网站开发公司
  • 新网站优化怎么做如何注册一个自己的网站
  • 网站编辑器无法显示淄博百度推广
  • 公司网站建设计入明细科目百度经验悬赏令
  • 石家庄微信网站制作美国最新消息今天 新闻
  • aspcms网站打不开全网营销代理加盟
  • 精品课程网站建设验收单济南网站seo优化