1、ShardingSphere基本概念

Wesley13
• 阅读 776

1 基本概念

什么是Sharding Sphere
1) 一套开源的分布式数据库中间件解决方案
2) 有三个产品: ShardingSphere-JDBC、ShardingSphere-Proxy、ShardingSphere-Sidecar
3) 定位为关系型数据库中间件, 合理在分布式环境下使用关系型数据库操作

2 分库分表

1) 分库分表有两种方式: 垂直切分和水平切分
2) 垂直切分: 垂直分表和水平分表
   a) 垂直分表: 表中一些字段放在一个表里, 另一些字段放在另一个表里
   b) 垂直分库: 单一数据库, 按照业务进行划分, 订单一个库, 用户一个库

3) 水平切分: 水平分表和水平分库
   a) 水平分库: 将单张表的数据切分到多个服务器上去, 每个服务器具有相应的库与表, 只是表中数据集合不同.
               水平分库分表能够有效的缓解单机和单库的性能瓶颈和压力, 突破IO、连接数、硬件资源等的瓶颈
   b) 水平分库: 针对数据量巨大的单张表(比如订单表), 按照某种规则(RANGE,HASH取模等), 切分到多张表里面去. 
               但是这些表还是在同一个库中, 所以库级别的数据库操作还是有IO瓶颈, 不建议采用

4) 分库分表应用
   a) 在设计数据库时考虑垂直分库和垂直分表
   b) 随着数据库量的增加, 不要马上考虑做水平切分, 首先考虑缓存处理、读写分离、使用索引等方式, 如果这些方式
      不能解决根本问题了, 再考虑做水平分库、水平分表
      
5) 分库分表问题
   a) 跨节点连接查询问题分页排序
   b) 多数据源管理问题
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
SQL 性能优化梳理
前言本文主要针对的是关系型数据数据库MySql。键值类数据库可以参考:https://www.jianshu.com/p/098a870d83e4先简单梳理下Mysql的基本概念,然后分创建时和查询时这两个阶段的优化展开。1基本概念简述1.1逻辑架构!(https://oscimg.osch
Stella981 Stella981
3年前
Apache ShardingSphere XA分布式事务系列(一)
Shardingsphere对XA分布式事务的支持ApacheShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由JDBC、Proxy和Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构
Wesley13 Wesley13
3年前
MongoDB 教程(一):了解 NoSQL
概述:  MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。  MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。关系型数据库遵循ACID规则  事务在英文中是tran
Wesley13 Wesley13
3年前
mysql面试题及答案
01\.列举常见的关系型数据库和非关系型都有那些?1.关系型数据库通过外键关联来建立表与表之间的关系,常见的有:SQLite、Oracle、mysql2.非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定常见的有:MongoDb、redis02\.MySQL常见数据库引擎
Stella981 Stella981
3年前
RDS、DDS 和 GaussDB 理不清?看这一篇足够了!
当前,华为云提供的数据库服务主要包括三大类:关系型数据库服务,非关系型数据库服务以及数据库工具服务。如下图所示:!(https://pic1.zhimg.com/80/v2d75be0bd71ca51f396e85a79e9f40e4d_720w.jpg)关系型数据库和非关系型数据库均可分为开源和自研两大类。其中,自研数据库统一为GaussDB
Stella981 Stella981
3年前
Apache ShardingSphere整合Atomikos源码解析
Shardingsphere整合Atomikos对XA分布式事务的支持ApacheShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由JDBC、Proxy和Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如
Stella981 Stella981
3年前
ShardingSphere x Seata,一致性更强的分布式数据库中间件
日前,分布式数据库中间件 ShardingSphere 将Seata分布式事务能力进行整合,旨在打造一致性更强的分布式数据库中间件。背景数据库领域,分布式事务的实现主要包含:两阶段的XA和BASE柔性事务。XA事务底层,依赖于具体的数据库厂商对XA两阶段提交协议的支持。通常,XA协议通过在Prepare和Co
Stella981 Stella981
3年前
Mycat 分布式事务的实现
Mycat分布式事务的实现博客分类:java数据库引言:Mycat已经成为了一个强大的开源分布式数据库中间件产品。面对企业应用的海量数据事务处理,是目前最好的开源解决方案。但是如果想让多台机器中的数据保存一致,比较常规的解决方法是引入“协调者”来统一调度所有节点的执行。 本文选自《分布式数据库架构及企业实践——基于Mycat中间件》
Stella981 Stella981
3年前
MapGis如何实现WebGIS分布式大数据存储的
作为解决方案厂商,MapGis是如何实现分布式大数据存储的呢?MapGIS在传统关系型空间数据库引擎MapGISSDE的基础之上,针对地理大数据的特点,构建了MapGISDataStore分布式数据库引擎,其集成整合了多种开源分布式数据库和文件系统,分别用来存储和管理关系型数据,切片型数据,实时型数据和非结构化数据,形成针对地理大数据应用场景相关的解
京东云开发者 京东云开发者
2个月前
对比 Vitess,ShardingSphere 有哪些不同
本篇为InfoQ中文站供稿原文链接:\ShardingSphere是什么?ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由ShardingJDBC、ShardingProxy和ShardingSidecar(规划中)这3