- MyCat 是一个基于第三方应用中间件数据库代理框架,客户端所有的 JDBC 请求都必须要先交给 MyCat,再由 MyCat 转发到具体的真实服务器中。
- Sharding-Jdbc 是一个 Jar 形式,在本地应用层重写 JDBC 原生的方法,实现数据库分片形式。
- MyCat 属于服务器端数据库中间件,而 Sharding-Jdbc 是一个本地数据库中间件框架。
从设计理念上看确实有一定的相似性。主要流程都是:
SQL 解析 —> SQL路由 —> SQL改写 —>SQL执行 —> 结果归并
但架构设计上是不同的。MyCat 是基于 Proxy,它复写了 MySQL 协议,将 MyCat Server 伪装成一个 MySQL 数据库,而 Sharding-Jdbc 是 基于 JDBC 的扩展,是以 Jar 包的形式提供轻量级服务的。
JDBC 流程
- 注册驱动
- 获取连接 Connection
- 获取数据库操作对象(Statement专门执行sql语句的)
- 执行sql
- 处理查询结果集
- 释放资源