ShardingSphere(一)ShardingSphere简单介绍及相关概念
一、ShardingSphere简单介绍
出现背景:当数据库数据巨大时,数据库读写性能将变得很低,为了解决此问题,设计时,可以将数据进行分别存储于不同数据库、不同表中,以降低单表量数量大问题;ShardingSphere它是一套开源的分布式数据库中间件。同于统筹协调分库分表下的数据读写,而让业务开发人员只关注数据层之外的工作,而不用去用业务代码判断操作那个库,那个表。
Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 JDBC(重点)、Proxy 和 Sidecar(规划中)这 3 款相互独立,却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。
ShardingSphere的数据分片以及读写分离的使用方式是我们本系列介绍的重点。
二、分库分表概念(数据分片)
分表方式:
- 垂直分表
垂直分表即专表专用,实际上关系型数据库设计基本都采用的是该模式。将不同的内容拆分到不同的表中。比如订单信息,会拆分为订单基本信息表、订单客户信息表、订单商品表等。所有表结构都不同。
- 水平分表
所谓水平分表即将数据量过大的表拆分为多张相同结构的表,每张表中都分摊存储数据,来降低数据库查询压力。比如将订单表拆分为 order_0、order_1、order_2。
分库方式:
- 垂直分库
与水平分表一样,即专库专用。不同的数据库来存储不同模块的表信息。比如将订单系统拆分为订单库和商品库。订单库存放订单相关的表 比如:订单基本信息表、订单详情表;商品库存放商品表、商家表。
- 水平分库
水平分库即,所有的数据库中存放相同的表信息。比如我们将不同渠道的下单信息分别存储于不同的渠道数据库中。比如通过微信小程序下单的我们存在在数据库a中,将通过手机app下单的订单信息存放在数据库b中,通过电脑pc端下单的订单信息存放在数据库c中。
- 公共表
公共表即每张数据库中都存在相同接口,相同数据的表,比如数据字典表、地区表等作为每个库都可能用到的表。
三、读写分离
读写分离即,为了减少对一个数据库的读写压力,然后将读和写的操作分别路由到不同的数据库中。比如对a库做增删改操作,对b库做读操作。但是我们需要自己做好主从库的数据同步。数据同步不是ShardingSphere的工作范畴,我们需要通过其他方式实现吗,比如对mysql的通过binlog文件监控实现的主从同步。
四、ShardingSphere-JDBC介绍
本系列教程主要讲解如何使用ShardingSphere-JDBC 来实现对第二部分中的不同拆分场景下的Sharding的配置使用。数据库的设计、表结构的设计,以及采用哪种拆分方式则是有设计人员前期规划好,数据库表提前创建好。Sharding在业务代码和数据库层之间只用来进行做相应的路由到对应的规则下的数据库,对应规则下的表。
ShardingSphere(一)ShardingSphere简单介绍及相关概念相关推荐
- SpringBoot 2.0 系列001 -- 入门介绍以及相关概念
为什么80%的码农都做不了架构师?>>> SpringBoot 2.0 系列001 -- 入门介绍以及相关概念 什么是SpringBoot? 项目地址:http://proje ...
- 有关信息论和 error-control coding 的简单介绍
信息论 有关信息论和 error-control coding 的简单介绍 当一件事情可能有多种可能情况时,这件事情对某人而言,具体是哪种情况的不确定性,叫做熵.而,信息,是消除该人对该事情不确定性的 ...
- VAE 模型基本原理简单介绍
VAE 模型基本原理简单介绍 1. 编写目的 2. 推荐资料 3. 相关背景 3.1 生成模型(Generative model): 3.2 隐变量模型(Latent Variable Models) ...
- 遗传算法的简单介绍以及模式定理的简单证明
遗传算法 遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...
- 2021年大数据ELK(十八):Beats 简单介绍和FileBeat工作原理
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Beats 简单介绍和FileBeat工作原理 一.Beats 二.FileB ...
- 2021年大数据ELK(十五):Elasticsearch SQL简单介绍
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Elasticsearch SQL简单介绍 一.SQL与Elasticsear ...
- 2021年大数据ELK(二):Elasticsearch简单介绍
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 一.Elasticsearch简介 1.介绍 2.创始人 二.E ...
- iOS开发UI篇—多控制器和导航控制器简单介绍
iOS开发UI篇-多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...
- 简单介绍一下R中的几种统计分布及常用模型
统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 统计分布每一种分布有四个函数:d――density(密度函数) ...
最新文章
- mysql8.0远程linux_【Linux】【mysql】mysql8.0开启远程访问及常见问题
- linux环境下c回车,linux_C 让 getchar()不再需要回车
- Verilog inout 双向口使用和仿真
- java解压服务器文件夹,java获取远程服务器上的文件夹
- 我开源的软件只能我拿来赚钱
- Java基础-TreeSet与Java自定义类型的排序
- 使用OWC 做图表时按周、月、年设置时间刻度是参数无效问题解决方法
- 杭电1879继续畅通工程
- SAP License:如何利用DEBUG强力修改表
- UVA1091 WF4786 Barcodes【编码检查】
- git 推送出现 fatal: The remote end hung up unexpectedly 解决方案
- access数据库密码破解
- 数据分析--优化模型
- GoogleEarth的安装与使用
- 苹果雪豹操作系统正式版_苹果放出iOS 13andiPadOS beta 2:加入SMB网络共享、APFS硬盘支持...
- Win10下运行红色警戒2
- 苹果开发者账号可以创建多少测试证书_苹果开发者帐户能创建多少个发布证书...
- 关于最新版mumu模拟器(2.2.16)安装xposed框架
- 阿里云ECS云服务器资源购买决策
- 09-17 流量分析