数据库分片--Mycat的简单使用(上)

作者阿里云代理 文章分类 分类:linux图文教程 阅读次数 已被围观 650


什么是数据库分片


一、海量数据的存储问题

随着互联网的开展,数据的量级也是指数的增加,从GB到TB到PB。对数据的各种操作也是


更加的困难,传统的联系性数据库已经无法满足快速查询与刺进数据的需求。这个时

候NoSQL的出现暂时处理了这一危机。它经过降低数据的安全性,减少对事务的支撑,减


少对杂乱查询的支撑,来获取性能上的提升。


但是,在有些场合NoSQL一些折衷是无法满足运用场景的,就比如有些运用场景是绝对要


有事务与安全目标的。这个时候NoSQL肯定是无法满足的,所以仍是需要运用联系性数据


库。假如运用联系型数据库处理海量存储的问题呢?此刻就需要做数据库集群,为了提高查


询性能将一个数据库的数据涣散到不同的数据库中存储。


二、什么是数据库分片


简略来说,便是指经过某种特定的条件,将我们存放在同一个数据库中的数据涣散存放到多


个数据库(主机)上面,以到达涣散单台设备负载的作用。


数据的切分(Sharding)根据其切分规则的类型,能够分为两种切分模式。


(1)一种是依照不同的表(或许Schema)来切分到不同的数据库(主机)之上,这种切


能够称之为数据的笔直(纵向)切分


image.png


(2)别的一种则是根据表中的数据的逻辑联系,将同一个表中的数据依照某种条件拆分到




多台数据库(主机)上面,这种切分称之为数据的水平(横向)切分。

image.png


三、怎么完成数据库分片


当数据库分片后,数据由一个数据库涣散到多个数据库中。此刻体系要查询时需要切换不同


的数据库进行查询,那么体系怎么知道要查询的数据在哪个数据库中?当添加一条记载时要


向哪个数据库中刺进呢?这些问题处理起来都是非常的麻烦。


这种情况下能够运用一个数据库中间件mycat来处理相关的问题。


二、什么是Mycat


Mycat 背面是阿里从前开源的知名产品——Cobar。Cobar 的中心功用和优势是 MySQL

数据库分片,此产品从前广为流传,据说最早的发起者对 Mysql 很通晓,后来从阿里换岗


了,阿里随后开源 Cobar,并维持到 2013 年年头,然后,就没有然后了。


Cobar 的思路和完成路径确实不错。根据 Java 开发的,完成了 MySQL 公开的二进制传输


协议,巧妙地将自己伪装成一个 MySQL Server,目前市面上绝大多数 MySQL 客户端工具


和运用都能兼容。比自己完成一个新的数据库协议要明智的多。


Mycat 是根据 cobar 演化而来,对 cobar 的代码进行了彻底的重构,运用 NIO 重构了网


络模块,而且优化了 Buffer 内核,增强了聚合,Join 等基本特性,一起兼容绝大多数数据


库成为通用的数据库中间件。

简略的说,MyCAT便是:


一个新颖的数据库中间件产品支撑mysql集群,或许mariadb cluster,提供高可用性数据

分片集群。你能够像运用mysql一样运用mycat。对于开发人员来说底子感觉不到mycat的存在。


image.png


本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。

我有话说: