MyCat-入门-原理介绍 | 学习笔记

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 快速学习 MyCat-入门-原理介绍

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(一):MyCat-入门-原理介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/755/detail/13250


MyCat-入门-原理介绍

MyCat 原理介绍

在 mycat 的原理当中有非常重要的一个动词叫”拦截”,他拦截了用户发送过来的SQL 语句,首先对 SQL 语句做一些特定的分析,如分析、路由分析、读写分析分析、缓存分析等,然后将此 SQL 语句发往后端的真实数据库,并将返回的结果做适当处理,最终再返回给用户,如图所示:

image.png

应用程序 application 发送一条 SQL 语句,它直接操作的是 mycat。注意现在如果使用 mycat,应用程序在操作的时候它操作的是 mycat, 将这个 SQL 语句发送给mycat 之后,mycat 要对这个 SQL 语句进行一系列复杂的处理,其中包含对于SQL 语句的解析,分片的解析,路由的解析,读写分离的解析,以及对于数据的一些解析。

解析完这条 SQL 语句之后,最终来决定当前执行的操作,到底要去查到哪几个数据节点当中来查找数据。已上图为例:实际上是对一张表进行了分片操作,就是user 表分成了三片,dn1,dn2 和 dn3 这三个数据节点。

那么也就是说 user 这张表的数据分散存储在了三个数据节点当中,那么它所使用的分片规则,叫做字符串枚举分片,字符串枚举分片指的是按照某一个特定字段的字符串的值来进行分片。

如果值是 0,那么数据将会存储在第一个节点上,如果 status 值是 1,数据将会存储在第二个节点上,status 值为 2,数据将会存储在第三个节点上。当然 status 取值也就为 0,1,2,只有这三种情况。

再去执行 select from user where status=0 这条 SQL 语句的时候,mycat 会拦截SQL 语句,然后对 SQL 语句进行解析,查询的是哪张表?是根据哪个字段来进行查询的?字段的值是什么?解析完毕之后就得到,当前这个请求要去查询的是第一个数据节点,因为第一个数据节点,它的 status 值是 0,假如用户发送的 SQL 语句不再是 0,而是 0,1。

这个时候经过 mycat 的 SQL 语句的解析,这一次查询要到 dn1 和 dn2 两个节点当中进行查询,它就会分别到两个节点当中进行查询,然后再将查询的结果进行合并,进行排序等相关处理,最终返回给应用程序。

所以在这幅图当中,应用程序在进行编写的时候只需要操作 mycat 就可以了。至于这条 SQL 语句到底要操作底层的哪些数据库的节点,不需要关心,这是 mycat 要做的事情。

那么这就是 mycat 的原理。对于 mycat 的原理,重点理解一下这一幅图。

相关文章
|
存储 Oracle 前端开发
MyCat-简介-MyCat 的使用场合及下载 | 学习笔记
快速学习 MyCat-简介-MyCat 的使用场合及下载
MyCat-简介-MyCat 的使用场合及下载 | 学习笔记
|
4月前
|
SQL 中间件 关系型数据库
MyCAT数据库中间件的架构与使用方法
MyCAT数据库中间件的架构与使用方法
|
存储 缓存 负载均衡
MyCat是干什么的?具体如何使用?底层原理是什么?
MyCat是干什么的?具体如何使用?底层原理是什么?
361 0
|
Java 关系型数据库 MySQL
MyCat:第五章:快速入门
MyCat:第五章:快速入门
217 0
MyCat:第五章:快速入门
|
存储 NoSQL 安全
MyCat-简介-MyCat 引入 | 学习笔记
快速学习 MyCat-简介-MyCat 引入
MyCat-简介-MyCat 引入 | 学习笔记
|
缓存 负载均衡 监控
MyCat-案例概述 | 学习笔记
快速学习 MyCat-案例概述
MyCat-案例概述 | 学习笔记
|
存储 Java 中间件
MyCat-入门-环境搭建-MyCat 安装 | 学习笔记
快速学习 MyCat-入门-环境搭建-MyCat 安装
MyCat-入门-环境搭建-MyCat 安装 | 学习笔记
|
存储 中间件 关系型数据库
MyCat-入门-核心概念-分片 | 学习笔记
快速学习 MyCat-入门-核心概念-分片
MyCat-入门-核心概念-分片 | 学习笔记
|
存储 cobar 关系型数据库
MyCat-简介-MyCat 历史 | 学习笔记
快速学习 MyCat-简介-MyCat 历史
MyCat-简介-MyCat 历史 | 学习笔记
|
存储 SQL NoSQL
MyCat 的基本介绍及安装
MyCat 的基本介绍及安装1、前置知识 1、分布式系统 ​ 分布式系统是指其组件分布在网络上,组件之间通过传递消息进行通信和动作协调的系统。它的核心理念是让多台服务器协同工作,完成单台服务器无法处理的任务,尤其是高并发或者大数据量的额任务。它的特点是: ​ **透明性:**分布式系统对于用户是透明的,一个分布式系统在用户面前的表现就像一个传统的单处理机分时系统,可用用户不必了解其内部结构就能使用; ​ **扩展性:**分布式系统的最大特点是可扩展性,它能够根据需求的增加而扩展,可以通过横向扩展使集群的整体性能得到线性提升,也可以通过纵向扩展单台服务器的性能使服务器集群的性能得到提升;
250 0
MyCat 的基本介绍及安装

相关实验场景

更多