---
title: 简要介绍
description: "Mycat是目前最流行的基于Java语言编写的数据库中间件，介于数据库与应用之间，进行数据处理与交互的中间服务。前端用户可以把它看作是一个数据库代理，用MySQL客户端工具和命令行访问，后端可以用MySQL协议与多个MySQL服务端通信，也可以用JDBC协议与大多数主流数据库服务端通信，其核心功能是分库分表，将一个大表水平分割为N个小表，存储在后端MySQL服务端里或者其他数据库里，配合数据库的主从模式还可实现读写分离。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/ecosystemEnable/MySQL/kunpengmycat_03_0002.html
sourcePath: /source/zh/kunpengdbs/ecosystemEnable/MySQL/kunpengmycat_03_0002.html
indexId: 6b3c7d0798ed90fd14ad081d09785619eeb78710867ff7ffd96509722082c2dd69
---
# 简要介绍

Mycat是目前最流行的基于Java语言编写的数据库中间件，介于数据库与应用之间，进行数据处理与交互的中间服务。前端用户可以把它看作是一个数据库代理，用MySQL客户端工具和命令行访问，后端可以用MySQL协议与多个MySQL服务端通信，也可以用JDBC协议与大多数主流数据库服务端通信，其核心功能是分库分表，将一个大表水平分割为N个小表，存储在后端MySQL服务端里或者其他数据库里，配合数据库的主从模式还可实现读写分离。

#### 适用场景

MyCat适用于以下业务场景：

- 主库所在的服务器的压力非常大，想要通过读写分离，让备库分担主库的部分压力，又不想修改应用配置，针对这类业务场景，可使用Mycat配置MySQL数据库的读写分离，应用配置只需要将应用连接到Mycat，由Mycat承担SQL语句分发。
- 单个数据库服务器的压力和磁盘的存储容量都已经达到瓶颈，需要对数据库服务器进行扩容，又不想迁移数据库到更高配置的服务器上，想基于现有数据服务器进行水平扩展，同时不想对应用进行修改，基于以上需求，可通过Mycat对现有数据库里的表进行分库分表配置，将新的数据路由到新增的数据库服务器上，实现数据库的水平扩展。
- 想要实现MySQL数据库的自动failover，主库出现故障后，应用的所有连接自动路由到新的主库上，无需人为干涉，应用也需要修改数据库配置，对于这种场景，可以在Mycat配置文件中配置主从之间的failover配置，主库失败，应用自动选取指定的备库作为新的主库，继续提供数据库服务。


#### 建议版本

目前Mycat的稳定版本是1.6。
