Mycat 2 数据库中间件

Java语言编写的MySQL数据库网络协议的开源中间件
旨在提供一个结合自动化复杂查询与定制路由规则的中间件,适用于各种数据切分场景

GitHub stars badge GitHub forks badge

联系我们

联系我们

目标特性

使用关系代数表达式优化查询计划

定制Calcite分布式查询引擎

编译SQL到关系代数表达式

规则优化引擎和代价优化引擎

生成物理执行计划

支持使用DSL编写查询计划

添加自定义拦截器

对指定的sql进行拦截

执行用户指定的执行代码

或sql对应结果集进行缓存

支持SQL参数化,缓存查询计划

对请求的sql进行参数化

缓存物理执行计划

相同参数化sql的请求

将免去一些分析优化过程

支持MySQL原生网络协议后端连接和JDBC连接

前端协议MySQL网络通信协议

MySQL原生网络协议异步非阻塞

JDBC接口支持多种数据库

生成物理执行计划

代理场景可透传MySQL结果集

字节级固定大小缓存区

异步非阻塞

交换网络报文数据

支持定制开发任意多字段路由

提供分片算法接口

优化器简化过滤条件

分片信息与关系表达式结合生成执行sql

MYCAT并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特性封闭在其商业产品中,使得开源项目成了一个摆设。