是一个开源的分布式数据库系统,但是因为数据库一般都有自己的数据库引 擎,而 Mycat 并没有属于自己的独有数据库引擎,所有严格意义上说并不能算 是一个完整的数据库系统,只能说是一个在应用和数据库之间起桥梁作用的中间 件。
在 Mycat 中间件出现之前,MySQL 主从复制集群,如果要实现读写分离, 一般是在程序段实现,这样就带来了一个问题,即数据段和程序的耦合度太高, 如果数据库的地址发生了改变,那么我的程序也要进行相应的修改,如果数据库 不小心挂掉了,则同时也意味着程序的不可用,而对于很多应用来说,并不能接 引入 Mycat 中间件能很好地对程序和数据库进行解耦,这样,程序只需关 注数据库中间件的地址,而无需知晓底层数据库是如何提供服务的,大量的通用 数据聚合、事务、数据源切换等工作都由中间件来处理; Mycat 中间件的原理是对数据进行分片处理,从原有的一个库,被切分为 多个分片数据库,所有的分片数据库集群构成完成的数据库存储,有点类似磁盘 阵列中的 RAID0.