一、Mycat2 概述
Mycat是基于java语言编写的数据库中间件,核心功能是分库分表和读写分离,可以将大表水平分割为N个小表。
可以看做为Mysql的数据库服务器,可以用连接Mysql的方式去连接Mycat,端口为8066
二、Mycat的三大作用
2.1 分库分表
数据分片包括:垂直分片(垂直分库、垂直分表)、水平分片(水平分库、水平分表)
2.1.1 垂直分库
将一个数据库根据不同的业务,分割为多个数据库,从而部署到不同的服务器上分担压力
2.1.2 垂直分表
将包含字段过多的表,根据其使用频率,分割为不同的表
2.1.3 水平分库
将表中的数据根据不同的业务关系分割到不同的数据库中
2.1.4 水平分表
将一个巨大数据量的表分割为结构相同的不同表,分担数据量
2.2 读写分离
主库:增删改
从库:读
可以有效的避免数据更新导致的行锁,使整个系统的查询性能得到极大的改善
注意:读写分离的数据节点的数据内容是一致的,所以要先搭建主从复制的架构
2.3 多数据源整合
有时同一个项目需要同时连接多个数据源
- 业务需要。比如进行两个DB的双写或数据迁移。
- 读写分离。分布式数据库集群部署( 1 个 master 和 n 个 slave 模式)
- NoSQL数据库。使用NoSQL数据库存储大量的一次性非业务数据,如日志等。