MyCat笔记(一):MyCat 介绍
1.什么是MyCat
- 一个彻底开源的,面向企业应用开发的大数据库集群
- 支持事务、ACID、可以替代MySQL的加强版数据库
- 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
- 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
- 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
- 一个新颖的数据库中间件产品 (官网介绍更详细,跳转MyCat 官网:http://www.mycat.io/)
2.MyCat 数据库中间件
MyCat是一个介于数据库与应用服务之间,进行数据处理与交互的中间服务,如下图所示
通俗点讲,应用层可以将它看作是一个数据库的代理(或者直接看成加强版数据库)。但是由于真正的数据库需要存储引擎,而 Mycat 并没有存储引擎,Mycat服务不保存真正的数据,所以并不是完全意义的分布式数据库系统。所以称Mycat这样类型的数据库中间代理服务的产品为数据库中间件。
3.MyCat使用场景
4.MyCat名词介绍
以 3.MyCat使用场景 为例来介绍
1.逻辑库
MyCat 只是一个中间服务,可以将 MyCat 理解为一个数据库,提供数据库服务。但是 MyCat 的数据并不是真实存在物理环境的,而是加载实际数据库中的数据。
场景中,db_user 和 db_store 就是两个逻辑库,真正的数据源还是来源于 MySQL 服务中的两台实际 MySQL 数据库。
在MyCat 中,逻辑库的定义位于 conf/schema.xml 文件中,用 <schema> 标签定义。
2.分片表
分片表:是指那些原本有很大数据的表,需要切分到多个表。这样,每个分片都有表的一部分数据,所有分片数据的合集构成了完整的表数据
场景中,db_user 表就是一个分片表,通过userId 字段取模的方式进行数据的水平切分。