`

Mysql sharding 方案

阅读更多

大牛@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,确定所在分区(新浪微博采用的方案)

 

需考虑的问题

  - 当一次查询的数据分散在多个分片时,需要排序和合并多个数据集

分享到:
评论

相关推荐

    分布式数据库-MySQL Sharding1

    在扩容 MySQL Sharding 集群时,通常采用双倍扩容的方案,例如从 2 个 dbgroup 扩展到 4 个 dbgroup。这个过程需要停止写服务,修改中间层的映射规则,并将原来的 dbgroup 数据同步到新的 dbgroup 上。 在实践中, ...

    mysql sharding(碎片)介绍

    总结来说,MySQL Sharding是一种针对大数据量的解决方案,它将数据分布到多个数据库服务器上,从而降低单点压力,提高系统性能和可用性。与数据库分区不同,Sharding更注重全局的分布式部署,适用于需要处理高并发、...

    springmvc4.3+mysql5.6+shardingjdbc1.4

    《构建高性能分布式数据库系统:基于SpringMVC 4.3、MySQL 5.6与ShardingJDBC 1.4》 在当前的互联网时代,高性能、高可用、可扩展的数据库系统对于企业级应用至关重要。本文将深入探讨如何利用SpringMVC 4.3、MySQL...

    mysql集群方案对比

    在本篇文章中,我们将探讨8种不同的MySQL集群方案,分析它们的特点、优缺点以及适用场景。 1. **MySQL主从复制(Replication)** - 原理:主服务器处理写操作,然后将更改传播到一个或多个从服务器,实现数据的...

    分布式数据库模式与反模式介绍.pptx

    然而,对于一致性、可用性和延迟的权衡,比如在秒杀等高并发场景,传统的MySQL Sharding方案可能会遇到挑战,如扩展和DDL操作困难、跨Shard事务处理复杂等。 在高可用性场景,如跨数据中心HA,数据的重要性使得不能...

    mysql分库分表-mysql-sharding-jdbc.zip

    总结,`mysql-sharding-jdbc` 提供了一种高效且易于集成的解决方案,帮助应对大数据量下的 MySQL 性能挑战。通过合理的分库分表策略和 Sharding-JDBC 框架的使用,可以有效地提高系统的扩展性和处理能力。

    springmvc4.3+mysql5.6+shardingjdbc2.0.3

    标题 "springmvc4.3+mysql5.6+shardingjdbc2.0.3" 描述了一个基于Java的Web开发项目,它集成了Spring MVC 4.3版本、MySQL 5.6数据库以及ShardingJDBC 2.0.3版本的分库分表框架。这个项目提供了一个基础架构,允许...

    Spring boot+Spring JDBC Template+mysql+ sharding-j-subdb.zip

    最后,Sharding-J-Subdb(可能指的是ShardingSphere的子项目)是一个用于数据库分片的解决方案,旨在解决单个数据库无法满足大规模数据存储和高并发访问的问题。ShardingSphere提供分库分表、读写分离、数据加密和...

    Sharding JDBC PPT 分享

    Sharding JDBC是一款开源的轻量级Java框架,它提供了一种分库分表的解决方案,用于解决大规模数据集下的数据库的性能问题。Sharding JDBC具有易于使用,无需额外依赖和强依赖数据库的特点。它允许开发人员对JDBC进行...

    mysql主从分布式sharding 切分表远离.docx

    【MySQL主从分布式sharding 切分表远离】 在应对互联网大规模应用的高并发和海量数据存储时,数据库的设计和优化至关重要。其中,数据库水平切分(Sharding)是一种常用的解决策略,它通过将数据分散到多个数据库或...

    SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现单库分表【全网最新】.doc

    传统的分库分表方案如Mycat虽然强大,但因其bug较多,使得许多人转向Sharding-JDBC等更为稳定可靠的方案。本文将详细介绍如何使用SpringBoot、Mybatis-Plus以及Sharding-JDBC 5.1.1版本来实现单库分表。 #### 二、...

    应对sharding-jdbc结合mybatis实现分库分表功能 分表的联合查询采用将mysql的数据同步到elasticsearch进行筛选

    1. **Sharding-JDBC**:Sharding-JDBC提供了一种透明化的数据库分片解决方案,它作为一个JDBC的驱动,使得应用程序无须修改代码即可使用分片功能。主要特性包括水平分库、水平分表、读写分离和分布式事务等。 2. **...

    基于mybatis插件实现轻量级分库分表方案-亿级数据mysql存储解决方案-mybatis-sharding.zip

    MyBatis-Sharding 是一种基于 MyBatis 的轻量级分库分表解决方案,它可以帮助开发者有效地解决亿级数据量下的 MySQL 存储问题。下面将详细介绍 MyBatis-Sharding 的核心概念、实现原理以及如何在实际项目中进行应用...

    sharding-sphere4.1.1

    Sharding-Proxy支持MySQL和PostgreSQL协议,使得在分布式数据库环境下的应用开发和运维变得更为简单。 **文件名称解析** "apache-shardingsphere-4.1.1-sharding-proxy-bin"是ShardingSphere 4.1.1版本Sharding-...

    实战体验几种MysqlCluster 方案.zip

    MySQL Cluster是MySQL数据库的一种高可用性解决方案,它通过数据分片(Sharding)和多节点复制来提供强一致性和高可用性。集群由管理节点(NDP)、数据节点(Data Node)和SQL节点(SQL Node)组成,各自负责不同的...

    springMvc Mybatis mysql 分库分表-shardingJdbc.zip

    Spring MVC、MyBatis和MySQL是常见的Web开发框架与数据库系统,而ShardingJDBC则是阿里巴巴开源的一款分布式数据库中间件,用于实现数据库的分库分表。本项目结合了这些技术,旨在提供一种高效且可扩展的解决方案。 ...

    spring+mybatis+sharding-jdbc 整合

    Spring、MyBatis和Sharding-JDBC的整合则提供了一种高效、灵活的解决方案。本篇将详细介绍这个整合过程及其背后的知识点。 首先,让我们了解一下这三个组件的核心功能: 1. Spring:这是一个开源的Java框架,用于...

    Sharding-Proxy

    Sharding-Proxy 提供了分布式事务解决方案,支持 XA 两阶段提交、Saga 长事务以及本地事务等多种模式,保证在分布式环境下的数据一致性。 **4. SQL 路由与解析** Sharding-Proxy 具有强大的 SQL 解析和路由能力。它...

    ShardingJDBC5.1.1按月分库分表、读写分离、自动创表完整demo

    ShardingJDBC是由Apache Software Foundation托管的开源项目,其设计理念是为Java开发者提供透明化的数据库分片解决方案。它不依赖任何特定的ORM框架,可以与JDBC、MyBatis、Hibernate等无缝集成,支持水平扩展,...

Global site tag (gtag.js) - Google Analytics