实习的时候,在一个项目当中,项目经理要求把原先的MySQL数据连接基于mycat来进行改造 。当时就在想MyCat是什么东西?为什么要用它呢?
*一、什么是MyCat:
MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。
MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在MyCat里,都是一个传统的数据库表,支持标准的SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度
二、那么为什么要用到MyCat呢?
*例如操作系统是对各类计算机硬件的抽象。那么我们什么时候需要抽象?假如只有一种硬件的时候,我们需要开发一个操作系统吗?
再比如一个项目只需要一个人完成的时候不需要leader,但是当需要几十人完成时,就应该有一个管理者,发挥沟通协调等作用,而这个管理者对于他的上层来说就是对项目组的抽象。
同样的,当我们的应用只需要一台数据库服务器的时候我们并不需要Mycat,而如果你需要分库甚至分表,这时候应用要面对很多个数据库的时候,这个时候就需要对数据库层做一个抽象,来管理这些数据库,而最上面的应用只需要面对一个数据库层的抽象或者说数据库中间件就好了,这就是Mycat的核心作用。
所以可以这样理解:数据库是对底层存储文件的抽象,而Mycat是对数据库的抽象。*
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
表结构方面,测试用的sbtestX表采用InnoDB引擎,具有自动增长的主键id,以及两个索引字段k和c,这为测试提供了基础的数据模型。 综合来看,MyCat的性能受硬件配置、并发用户数、以及前端代理方案的影响。在选择...
它是一个开源的分布式数据库系统,是一个实现了 MySQL 协议的的 Server,前端用户可以把它看作是一个数据库代理,用 MySQL ...到这里,你大概明白了,Mycat 是什么?Mycat 就是 BigSQL,Big Data On SQL Database。
总的来说,MyCat为大型系统的数据库架构提供了有效解决方案,但其深入理解和应用需要付出时间和精力。希望这个压缩包能够成为你探索分布式数据库世界的起点,尽管过程可能会有些艰难,但只要坚持下去,你会发现MyCat...
在实际使用过程中,mycat-web和mycat-eye可以根据需求结合使用,mycat-web更适合进行配置管理和SQL审计,而mycat-eye则更适合实时监控系统的健康状况。两者互补,可以为MyCat的运维提供全面的支持。 压缩包中的...
【标题】"mycat2 install-template(mycat2-install-template-1.20.zip)" 指的是MyCat 2的一个安装模板文件,版本号为1.20,存储在一个名为“mycat2-install-template-1.20.zip”的压缩包内。MyCat是开源的、基于...
【标题】"mycat2基础安装包"涉及的是开源数据库中间件Mycat的第二代版本,...以上就是关于"mycat2基础安装包"的相关知识点,通过理解这些内容,用户可以更好地进行Mycat2的部署和使用,实现高效、弹性的数据库管理。
SQL92标准语句Mycat支持测试_基于Oracle和MySQL SQL92标准语句是当前关系数据库管理系统中最广泛采用的标准語言,它定义了数据库管理系统的基本操作,如数据定义、数据操作、事务控制等。Mycat是一个开源的数据库...
1. **分库分表**:MYCAT可以将一个大型数据库拆分为多个小型数据库,每个数据库负责一部分数据,从而分散负载,提高读写效率。同时,它支持不同数据节点之间的事务一致性,确保数据的完整性。 2. **读写分离**:...
2015年5月,由核心参与者们一起编写的第一本官方权威指南《Mycat权威指南》电子版发布,累计超过500本,成为开源项目中的首创。 截至2015年7月,超过100个项目采用Mycat,涵盖银行、电信、电子商务、物流、移动应用...
Mycat作为一款开源的分布式数据库中间件,被广泛应用于大数据处理和高并发场景,为企业提供了数据库分库分表、读写分离等解决方案。然而,在实际生产环境中,Mycat的使用往往会遇到一些常见问题。以下是对这些问题的...
7. **备份与恢复**:重要的是要定期备份MyCat的配置文件,以便在出现问题时能够迅速恢复。 MyCat 2作为数据库中间件,它的主要功能包括: - **数据分片**:将大表分成多个小表,分散在不同的数据库服务器上,提高...
总结来说,Mycat是一个强大的数据库中间件,它提供了数据分片、读写分离、事务处理等功能,为大数据环境下的数据库管理提供了有效解决方案。通过对"Mycat-1.6.7.3.zip"的安装、配置和运行,我们可以深入学习和掌握...
MyCat2映射关系概述 MyCat2是一款开源的数据库中间件,可以实现数据库的分布式处理、读写分离、负载均衡等功能。在MyCat2中,数据源、集群和逻辑表是三个核心概念。 数据源(DataSource)是指实际的数据库实例,...
Proxy和Mycat是两种常用的中间件,用于实现这些功能。本篇文章将深入探讨proxy和Mycat的对比测试,以及如何在MySQL主从架构中进行测试。 首先,我们来看proxy。Proxy通常指的是数据库代理服务器,它位于应用服务器...
mycat2在mycat的基础上进行了升级与优化,为大规模数据处理提供了强大的支持。mycat2-1.21-release-jar-with-dependencies.jar是mycat2的完整发行版,包含了所有必要的依赖库,用户可以直接运行,无需额外安装步骤。...
### 关系型数据的分布式处理系统MyCAT:深入解析与应用 ...未来的 MyCAT 将继续优化其核心功能,同时探索与新兴技术(如 AI 和机器学习)的结合,为用户提供更加智能化、高效的数据处理解决方案。
### MyCAT 使用经验分享 #### 一、环境准备与安装 **Mycat** 是一款开源的分布式数据库中间件,采用 Java 语言编写,能够帮助开发者实现数据分片、读写分离等功能。为了确保 **Mycat** 能够顺利运行,首先需要准备...
MySQL中间件MyCat是一款在大数据环境下广泛使用的数据库管理和分发工具,特别针对MySQL数据库系统设计,旨在实现数据库的读写分离和水平扩展。MyCat 1.6.5是其一个稳定版本,专为Windows环境提供了免安装的便捷性。...
总之,《MyCat 完整版官方文档 PDF》涵盖了MyCat的安装、配置、使用、优化等多个方面,是深入理解和掌握MyCat的必备资料。通过阅读这份文档,读者不仅可以了解到MyCat的基本原理,还能学会如何在实际项目中部署和...