数据库水平分区(sharding),即对同一张数据库表,按照规则将数据切分至多个数据库。
如上图,将user表切分至三个数据库中.
在对数据库水平分区的情况下,面对多个数据库,想要生成一个唯一性的主键这是一个问题。
通常解决办法有两种:
UUID:
使用UUID很容易就可以生成唯一性主键,并且不用担心主键生成效率问题,当然缺点是UUID的长度过长,浪费空间,所以下面介绍另外一种方法。
单独一台服务器负责主键生成:
即我们使用一台单独的服务器(如mysql) 负责主键的生成
如果我们是使用mysql数据库,可以创建一张表来模拟oracle的sequence:
表sql:
create table tab_sequence (value bigint not null)
oracle数据库直接使用sequence即可.
但现在我们又会碰到单点问题,即如果master挂了,对我们的应用影响非常大。
所以我们可以配合使用mysql 的复制功能。
配合使用linux HA: heartbeat,就算master服务器或是硬盘故障了,我们也可以很快的切换至slave.保障高可用性。
- 大小: 12.1 KB
- 大小: 17.6 KB
- 大小: 22.8 KB
分享到:
相关推荐
数据库Sharding的基本思想和切分策略
数据库分库分表(sharding)系列(二) 全局主键生成策略
数据库Sharding 一篇详细描述数据库分片的文章
SpringBoot整合Sharding-JDBC,实现从数据库读取sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换
Sharding-JDBC集分库分表、读写分离、分布式主键、柔性事务和数据治理与一身,提供一站式的解决分布式关系型数据库的解决方案。
1、创建数据库 首先我们创建相应的数据库 create database sharding_0; create database sharding_1; 这样我们就创建了两个数据库sharding_0和sharding_1; 脚本在项目里面
分布式数据库-MySQL Sharding1
数据库+分库分表+sharding-jdbc
Sharding-JDBC教程:Mysql数据库主从搭建
1、shardingsphere 并不直接支持达梦数据库,需要实现部分接口逻辑。 2、本demo并不完全支持达梦sql 3、包里面含有test demo可以直接测试 4、感谢shardingsphere 团队。 5、具体如何实现的 请查看我的博文 ...
数据库分库分表(sharding).
主会场-昨天、今天、明天 - Oracle 数据库技术面面观杨廷琨 - 从分区到Sharding:数据库核心业务表的分区设计
ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库...
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取...
Sharding JDBC MySQL 2016 数据库嘉年华,当当网 技术专家 分享
MongoDB 数据库官网 sharding 指导文档
当当开源sharding-jdbc-轻量级数据库分库分表中间件,比较成熟的分库分表中间件,值得一看。
小白入门sharding-jdbc,数据库中间键
数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示