MyCat笔记(一):MyCat 介绍

1.什么是MyCat

  • 一个彻底开源的,面向企业应用开发的大数据库集群
  • 支持事务、ACID、可以替代MySQL的加强版数据库
  • 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
  • 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
  • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
  • 一个新颖的数据库中间件产品    (官网介绍更详细,跳转MyCat 官网:http://www.mycat.io/)

2.MyCat 数据库中间件

     MyCat是一个介于数据库与应用服务之间,进行数据处理与交互的中间服务,如下图所示

MyCat笔记(一):MyCat 介绍

       通俗点讲,应用层可以将它看作是一个数据库的代理(或者直接看成加强版数据库)。但是由于真正的数据库需要存储引擎,而 Mycat 并没有存储引擎,Mycat服务不保存真正的数据,所以并不是完全意义的分布式数据库系统。所以称Mycat这样类型的数据库中间代理服务的产品为数据库中间件。

3.MyCat使用场景

MyCat笔记(一):MyCat 介绍

 4.MyCat名词介绍

     以 3.MyCat使用场景 为例来介绍

    1.逻辑库

        MyCat 只是一个中间服务,可以将 MyCat 理解为一个数据库,提供数据库服务。但是 MyCat 的数据并不是真实存在物理环境的,而是加载实际数据库中的数据。

        场景中,db_user 和 db_store 就是两个逻辑库,真正的数据源还是来源于 MySQL 服务中的两台实际 MySQL 数据库。

        在MyCat 中,逻辑库的定义位于 conf/schema.xml 文件中,用 <schema> 标签定义。

          MyCat笔记(一):MyCat 介绍

    2.分片表

        分片表:是指那些原本有很大数据的表,需要切分到多个表。这样,每个分片都有表的一部分数据,所有分片数据的合集构成了完整的表数据

        场景中,db_user 表就是一个分片表,通过userId 字段取模的方式进行数据的水平切分。