MYCAT:
一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。
MyCat技术原理
MyCat技术原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。
Orders表被分为三个分片datanode(简称dn),这三个分片是分布在两台MySQL Server上(DataHost),即datanode=database@datahost方式,因此你可以用一台到N台服务器来分片,分片规则为(sharding rule)典型的字符串枚举分片规则,一个规则的定义是分片字段(sharding column)+分片函数(rule function),这里的分片字段为prov而分片函数为字符串枚举方式。当MyCat收到一个SQL时,会先解析这个SQL,查找涉及到的表,然后看此表的定义,如果有分片规则,则获取到SQL里分片字段的值,并匹配分片函数,得到该SQL对应的分片列表,然后将SQL发往这些分片去执行,最后收集和处理所有分片返回的结果数据,并输出到客户端。以select * from Orders where prov=?语句为例,查到prov=wuhan,按照分片函数,wuhan返回dn1,于是SQL就发给了MySQL1,去取DB1上的查询结果,并返回给用户。如果上述SQL改为select * from Orders where prov in (‘wuhan’,‘beijing’),那么,SQL就会发给MySQL1与MySQL2去执行,然后结果集合并后输出给用户。但通常业务中我们的SQL会有Order By以及Limit翻页语法,此时就涉及到结果集在MyCat端的二次处理,这部分的代码也比较复杂,而最复杂的则属两个表的Jion问题,为此,MyCat提出了创新性的ER分片、全局表、HBT(Human Brain Tech)人工智能的Catlet等。
http://blog.itpub.net/29510932/viewspace-1664499/
相关推荐
《MyCat测试报告:单机与多机集群的性能比较》 MyCat,作为一个流行的开源分布式数据库系统,常被用于解决大数据场景下的高并发问题。本测试报告旨在探究单台MyCat与多台MyCat集群在性能上的差异,并对比前端使用...
【标题】"mycat2 install-template(mycat2-install-template-1.20.zip)" 指的是MyCat 2的一个安装模板文件,版本号为1.20,存储在一个名为“mycat2-install-template-1.20.zip”的压缩包内。MyCat是开源的、基于...
MyCat2映射关系概述 MyCat2是一款开源的数据库中间件,可以实现数据库的分布式处理、读写分离、负载均衡等功能。在MyCat2中,数据源、集群和逻辑表是三个核心概念。 数据源(DataSource)是指实际的数据库实例,...
标题所涉及的知识点为“Mycat高可用负载均衡集群实现”,这是使用HAProxy和Keepalived技术来达成MyCat服务器集群的高可用性和负载均衡的方案。下面详细说明这一知识点。 首先,Mycat是一个数据库中间件,它可以实现...
【标题】"mycat2 install-template(mycat2-install-template-1.21.zip)" 指的是MyCat 2的一个安装模板文件,版本为1.21,通常包含了安装MyCat 2所需的所有配置文件和脚本,用于简化部署过程。 【描述】虽然描述...
《深入解析mycat2:基于mycat2-1.21-release-jar-with-dependencies.jar的分布式数据库中间件》 mycat2是一款开源的、高性能的、基于Java开发的分布式数据库中间件,它旨在解决大数据分布式存储和处理的问题。mycat...
【标题】"mycat2-1.21" 指的是Mycat数据库中间件的一个特定版本,即1.21版。Mycat是一款开源的、基于Java开发的分布式数据库系统,常用于大数据环境下的数据库集群管理,能够实现数据库的水平扩展,提升系统的并发...
MySQL中间件MyCat是一款在大数据环境下广泛使用的数据库管理和分发工具,特别针对MySQL数据库系统设计,旨在实现数据库的读写分离和水平扩展。MyCat 1.6.5是其一个稳定版本,专为Windows环境提供了免安装的便捷性。...
《Mycat数据库分片中间件详解》 Mycat,作为一款开源的分布式数据库中间件,被广泛应用于大数据量、高并发的互联网环境中。它实现了数据库的分片功能,可以将一个大表拆分成多个小表,分散在不同的数据库服务器上,...
【MyCat从入门到放弃】 MyCat是一款开源的分布式数据库中间件,它的设计目标是让大数据分布式处理变得简单。在大型互联网应用中,面对高并发、海量数据的挑战,单机数据库往往无法满足需求,因此MyCat应运而生。本...
### 关系型数据的分布式处理系统MyCAT:深入解析与应用 #### 1. MyCAT 概述 ##### 1.1 背景 随着信息技术的快速发展,传统的数据库技术面临着越来越大的挑战。特别是当数据库应用扩展到互联网级别时,集中式...
在Windows环境下安装Mycat,首先需要理解Mycat是什么。Mycat是一个开源的数据库分片中间件,主要用于解决大数据场景下的数据存储和查询问题。它基于Java编写,能够支持多种数据库系统,如MySQL、Oracle、DB2、SQL ...
Mycat 发展到目前的版本,已经不是一个单纯的 MySQL 代理了,它的后端可以支持 MySQL、SQL Server、 Oracle、DB2、PostgreSQL 等主流数据库,也支持 MongoDB 这种新型 NoSQL 方式的存储,未来还会支持更 多类型的...
Proxy和Mycat是两种常用的中间件,用于实现这些功能。本篇文章将深入探讨proxy和Mycat的对比测试,以及如何在MySQL主从架构中进行测试。 首先,我们来看proxy。Proxy通常指的是数据库代理服务器,它位于应用服务器...
Mycat作为一款开源的分布式数据库中间件,被广泛应用于大数据处理和高并发场景,为企业提供了数据库分库分表、读写分离等解决方案。然而,在实际生产环境中,Mycat的使用往往会遇到一些常见问题。以下是对这些问题的...
MySQL分布式数据库中间件Mycat是一款广泛应用于大数据处理和高并发场景的重要工具,它通过将数据分布到多个物理节点上,实现了数据的水平扩展。在实际应用中,Mycat的性能调优对于系统的整体效率至关重要。本指南将...
《Mycat2数据迁移工具——Yugong:轻松实现MySQL到Mycat的无缝迁移》 在IT行业中,数据库管理是一项至关重要的任务,尤其是在大数据时代,数据量的爆炸性增长使得传统的单一数据库系统面临挑战。Mycat作为一款开源...
【Mycat多租户解决方案】是针对SAAS(Software as a Service)应用设计的一种高效且资源节省的数据隔离策略。在传统的多租户模式中,每个租户通常需要单独的数据库实例,这不仅消耗大量资源,还增加了管理和运维的...
《Mycat权威指南》是一本深度解析Mycat数据库系统的中文著作,旨在为读者提供全面、清晰的Mycat使用指南。Mycat作为一款开源的分布式数据库系统,其核心价值在于解决大数据环境下传统单机数据库无法满足的高并发、高...