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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 数据库分片--Mycat的简单使用(上)

什么是数据库分片


一、海量数据的存储问题

随着互联网的发展,数据的量级也是指数的增长,从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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
存储 缓存 NoSQL
关于数据库分片我们需要知道的
本文探讨了数据库分片的解决方案,强调了数据库分片在数据存储规模增长时的实用性。分片是将数据分布到多台机器上的技术,通过横向扩展和纵向扩展实现。文章还详细介绍了数据库分片的四种主要实现方式:什么都不做、垂直扩展、复制和专用数据库。每种方式都有其优点和限制,例如,垂直扩展可能需要更多的硬件资源,而复制可以提高读取性能,但可能需要更多的存储空间。最终,选择数据库分片方案应根据问题的复杂性和资源可用性来决定。
166 1
关于数据库分片我们需要知道的
|
存储 SQL 关系型数据库
数据库魔法师:使用ShardingSphere实现MySQL读写分离与分片指南跟着爆叔的节奏稳了!
数据库魔法师:使用ShardingSphere实现MySQL读写分离与分片指南跟着爆叔的节奏稳了!
119 0
|
5月前
|
存储 中间件 关系型数据库
数据库切片大对决:ShardingSphere与Mycat技术解析
数据库切片大对决:ShardingSphere与Mycat技术解析
462 0
|
2月前
|
存储 负载均衡 安全
高效管理大型数据库:分片与复制的策略与实践
在当今数据驱动的世界中,管理和优化大型数据库系统是每个企业的关键任务。特别是在面对数据量迅速增长的情况下,如何确保系统的高可用性和性能成为重要挑战。本文探讨了两种核心技术——分片(Sharding)和复制(Replication),以及它们在实际应用中的策略与实践。通过对比这两种技术的优缺点,并结合具体案例分析,本文旨在为数据库管理员和开发者提供一套高效管理大型数据库的综合方案。
|
3月前
|
存储 负载均衡 定位技术
现代数据库系统中的数据分片策略与优化
数据分片在现代数据库系统中扮演着关键角色,特别是在面对海量数据和高并发访问的情况下。本文探讨了数据分片的基本概念、常见的分片策略(如水平分片与垂直分片)、以及如何通过优化和选择合适的分片策略来提升数据库系统的性能和可扩展性。
|
5月前
|
存储 SQL 关系型数据库
关系型数据库分区与分片
关系型数据库分区与分片
67 1
|
11月前
|
SQL Oracle 关系型数据库
数据库系列课程(02)-MyCat读写分离
数据库系列课程(02)-MyCat读写分离
75 0
|
12月前
|
关系型数据库 MySQL Linux
24MyCat - 全局序列号(数据库方式)
24MyCat - 全局序列号(数据库方式)
37 0
|
11月前
|
算法 数据库
数据库系列课程(06)-MyCat分片按省操作数据库例子
数据库系列课程(06)-MyCat分片按省操作数据库例子
42 0
|
11月前
|
算法 数据库 索引
数据库系列课程(05)-MyCat分库分表策略
数据库系列课程(05)-MyCat分库分表策略
69 0