数据分库分表Sharding JDBC学习
来源:互联网 发布:上瘾网络剧花絮视频 编辑:程序博客网 时间:2024/05/21 22:45
持续学习参考:http://dangdangdotcom.github.io/sharding-jdbc/02-guide/hint-sharding-value/
1、什么是分库分表
将原本属于一个表格的数据分散存储到不同数据库的不同表格中去
2、分库分表涉及概念
逻辑表与物理表:t_order被拆分为t_order_0和t_order_1,前者称为逻辑表,后者称为物理表
数据分片:由数据源名称和数据表组成,例如db_0.t_order_0
分片字段:用于将数据库或表格水平拆分的关键字段
分片算法:决定数据应该路由到哪个数据库哪个表格,由业务方自己实现,支持操作包括等号、IN、Between
SQL Hint:对于分片字段非SQL决定,而由其他外置条件决定的场景,可使用SQL Hint灵活的注入分片字段
3、分库分表问题
(1)是否支持按多个字段分片?
支持
(2)什么是强制路由
定义:不依赖于表中的列传入分片键值
使用场景:分片算法是依据where后面的分片键值来决定到哪个库哪个表中查询数据
例如 select * from t_order where user_id = 1 and order_id = 2
按照user_id余2决定目标数据库,order_id余2决定目标数据表,最终形成的sql表达式为
select * from db1.t_order_2 where user_id = 1 and order_id = 2如果where只有一个字段或都没有,例如select * from t_order , select * from t_order where user_id =1
此种情况下,【如果仍然想使用分片策略】,则可以使用基于Hint的分片键值管理器
例如查询语句为select * from t_order,设置hint为
hintManager = HintManager.getInstance();
hintManager.addDatabaseShardingValue(“t_order”, “user_id”, 1);
hintManager.addTableShardingValue(“t_order”, “order_id”, 2);
最终形成的SQL为select * from db1.t_order_0;
- 数据分库分表Sharding JDBC学习
- 分库分表sharding jdbc
- 学习sharding-jdbc 之spring+mybatis+sharding-jdbc整合
- 学习dangdang的分库分表扩展框架sharding-jdbc(一)
- 学习dangdang的分库分表扩展框架sharding-jdbc(一)
- 学习sharding-jdbc(一)分库分表扩展框架
- 解读分库分表中间件Sharding-JDBC
- 解读分库分表中间件Sharding-JDBC
- 解读分库分表中间件Sharding-JDBC
- 解读分库分表中间件Sharding-JDBC
- 解读分库分表中间件Sharding-JDBC
- 解读分库分表中间件Sharding-JDBC
- 当当分库分表中间件-sharding-jdbc
- 解读分库分表中间件Sharding-JDBC
- 解读分库分表中间件Sharding-JDBC
- 解读分库分表中间件Sharding-JDBC
- 解读分库分表中间件Sharding-JDBC
- Sharding-JDBC分库分表使用实例
- csapp_3.69
- Atitit 朋友圈 微博 之道 朋友圈的dos and donts
- 用两个栈实现队列
- springcloud(三):服务提供与调用
- Atitit 聚合搜索多个微博 attilax总结
- 数据分库分表Sharding JDBC学习
- Trie——理论知识
- 正则表达式(java)
- css3 transform animation 动画 小结
- atitit 2017年学业计划 v5 r818.xlsx
- 正则表达式速查表
- 学习SpringMVC——通过注解使用SpringMVC
- atitit 课程表终生学习专业进修表从幼儿园到养老院 v2 r818.xlsx
- 20170819WindowsPrj01_02_文件扫描器