Sharding-Jdbc与MyCat区别

上一篇 << 下一篇 >>>Mybatis的整体执行原理图解


相同点:
a、设计理念相同,主流程都是SQL解析-->SQL路由-->SQL改写-->SQL还行-->结果归并
b、查询的原理一致,非分片字段查询都会查询所有分片然后结果归并,分片字段查询则直接搜索分片数据库查询。
不同点:
他们类似于SpringCloud Ribbon与Nginx区别。
Mycat是基于Proxy,类似于nginx,它复写了MySQL协议,将MycatServer伪装成一个MySQL数据库。优点是保证数据库的安全性,归并数据结果完全解耦,缺点是效率偏低。
Sharding-JDBC是基于JDBC的扩展,是以jar包的形式提供轻量级服务的。优点是效率较高,缺点是归并数据结果没有实现解耦,有可能会影响到我们业务逻辑代码。还容易内存溢出,所以要做分页处理。

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



推荐阅读:
<< << <<<分表分库与分区的区别及拆分策略
<< << <<

你可能感兴趣的:(Sharding-Jdbc与MyCat区别)