大牛@Fenng有两篇与sharding相关的博客,值得一读:
- http://www.dbanotes.net/database/sharding.html
- http://www.dbanotes.net/database/database_sharding.html
Replication与Sharding的区别
- Replication用户扩展数据库系统的读性能
- Sharding用于扩展数据库系统的写性能
实现方案
1. Hibernate Shards(Google)
2. HiveDB
3. Mysql Proxy(官方,不成熟)
4. Amoeba for mysql
- 案例(http://pengranxiang.iteye.com/blog/1145342)
- 操作文档(http://docs.hexnova.com/amoeba/chap-getting-started.html)
5. Spock Proxy (http://spockproxy.sourceforge.net/)
- 基于Mysql Proxy扩展
- ROR版本
6. DataFabric (https://github.com/bpot/data_fabric)
- application-level sharding
- master/slave replication
分片如何在节点上分布? 节点、数据库实例、分片直接的关系?
- 常用方案:一对一对一关系(一个节点上一个mysql实例,部署一个分片)
- 分片的命名方式:shard_1.users, shard_2.users ...
分区键,分区函数的选择
- 一般选择ID,Hash,确定所在分区(新浪微博采用的方案)
需考虑的问题
- 当一次查询的数据分散在多个分片时,需要排序和合并多个数据集
分享到:
相关推荐
基于mybatis插件实现轻量级分库分表方案-亿级数据mysql存储解决方案-mybatis-sharding
众所周知,Fabric能提供MySQL的HA和Sharding方案,但是并没有具体的介绍其具体的表现和搭建部署流程。笔者所在团队亲身体验了此过程,虽然过程简单但是却充满着无穷的乐趣,也为未来的应用带来了福音。还在为MySQLHA...
Shark 分布式mysql分库分表中间件,sharding领域的一站式解决方案。具备丰富、灵活的路由算法支持,能够方便DBA实现库的水平扩容和降低数据迁移成本。shark采用应用集成架构,放弃通用性,只为换取更好的执行性能与...
在单表/数据库数据量过大,更新量不断飙涨时,MySQL DBA往往会对业务系统提出sharding的方案。既然要sharding,那么不可避免的要讨论到sharding key问题,在有些业务系统中,必须保证sharding key全局唯一,比如存放...
│ 1105-MySQL的sharding体系_rec.mp4 │ 1106-MySQL的监控体系_rec.mp4 │ 1107-MySQL安全管理_rec.mp4 │ 1108-MySQL升级要注意什么_rec.mp4 │ 1109-MySQL答疑1_rec.mp4 │ 1110-MySQL答疑2_rec.mp4 │ day-11-...
mysql分库分表架构原理 1、Mysql架构演变 2、分库分表方案&常用中间件 3、Sharding-JDBC 4、分库分表过程中存在哪些问题以及如何解决 ps:可用于公司技术分享
Master-Slave的数据库机构解决了很多问题,特别是read/write比较高的web2.0应用...这是对Replication的最基本陈述,这种模式的在系统Scale-out方案中很有引力(如有必要,数据可以先进行Sharding,再使用replication)。
mysql3库3表分库分表解决方案之 Apache ShardingSphere
TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时 它也让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。
TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时 它也让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。
1、shardingsphere 并不直接支持达梦数据库,需要实现部分接口逻辑。 2、本demo并不完全支持达梦sql 3、包里面含有test demo可以直接测试 4、感谢shardingsphere 团队。 5、具体如何实现的 请查看我的博文 ...
斑马介绍Zebra是一个基于JDBC API协议的上开发出的高可用,高性能的数据库访问层解决方案,是美团评论内部使用的数据库访问层中间件。具有以下功能点:配置集中管理,动态刷新支持读写分离,分库分表丰富的监控信息...
MyCat是一个开源的分布式数据库系统,它是基于MySQL协议的分布式数据库中间件,旨在提供高性能、高可用性和易扩展性的数据库解决方案。MyCat的设计目标是为了解决单一数据库服务器性能瓶颈和数据容量限制的问题,...
核心特性全数据库全SQL兼容,完美RR等级读写分离,与原生一致的ACID特性,轻量简单易扩展另外一个轮子的意义很多人会质疑...因种种原因,这些层次的Sharding方案都无法提供跟原生数据库一样的功能: ACID里的A无法保证
Mysql_Sharding Nginx_Load_Balancing Nginx_WebSocket Nginx_Window_Register_Service RESTFUL_architecture RabbitMQ RabbitMQ_User_Manager Redis_Config Redis_Monitor Redis_State_Live Scala_Java_Override_...
连接池支持(内置 MySQL、Redis、syslog 等多种组件) 类似 Golang 的 defer 机制解决由于异常导致的资源未释放、锁未释放的问题 可继承的View布局及组件化支持,方便完成 bigPipe/bigRender/ 首屏加载优化等不同...
在携程账号数据库迁移MySQL过程中,我们对用户ID的生成方案进行了新的设计,要求能够支撑携程现有的新用户注册体量。1.全局唯一2.支持高并发3.能够体现一定属性4.高可靠,容错单点故障5.高性能生成ID的方法有很多,...
Sharding-JDBC 代码层分库分表中间件 JJWT JWT 登录支持 Spring Security 安全框架 Apache Shiro 安全框架 Redis 缓存方案 Aliyun OSS 阿里云对象存储服务(图片存储备选方案) Lombok 简化对象封装工具 Docker 应用
Sharding、EasyTransaction、tcc-transaction 等框架 对于 XA 协议来说,它使用的是 2PC 协议的方式,是阻塞式的,并且它还依赖于数据库自身提供的 XA 接口的可靠性,对于大部分商业数据库来说做的都还蛮不错,在 ...