1. MyCat 是一个基于第三方应用中间件数据库代理框架,客户端所有的 JDBC 请求都必须要先交给 MyCat,再由 MyCat 转发到具体的真实服务器中。
  2. Sharding-Jdbc 是一个 Jar 形式,在本地应用层重写 JDBC 原生的方法,实现数据库分片形式。
  3. MyCat 属于服务器端数据库中间件,而 Sharding-Jdbc 是一个本地数据库中间件框架。

从设计理念上看确实有一定的相似性。主要流程都是:

SQL 解析 —> SQL路由 —> SQL改写 —>SQL执行 —> 结果归并

但架构设计上是不同的。MyCat 是基于 Proxy,它复写了 MySQL 协议,将 MyCat Server 伪装成一个 MySQL 数据库,而 Sharding-Jdbc 是 基于 JDBC 的扩展,是以 Jar 包的形式提供轻量级服务的。

JDBC 流程

  1. 注册驱动
  2. 获取连接 Connection
  3. 获取数据库操作对象(Statement专门执行sql语句的)
  4. 执行sql
  5. 处理查询结果集
  6. 释放资源