Mycat和Sharding-jdbc的区别
首先mycat
是一个数据库中间件
,sharding-jdbc
是以jar包提供服务的jdbc框架
。
其次,使用mycat时不需要改代码
,而使用sharding-jdbc时需要修改代码
。
Mycat:数据库中间件

Mycat:底层原理
Mycat的原理中最重要的一个动词是“拦截
”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分库分表分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。
Sharing-JDBC

Sharding-JDBC底层原理
当Sharding-JDBC接受到一条SQL语句时,会陆续执行
总结
sharding-jdbc
作为一个组件集成在应用内,而mycat
则作为一个独立的应用需要单独部署。- 从架构上看sharding-jdbc更符合分布式架构的设计,直连数据库,没有中间应用,理论性能是最高的。
- 从耦合性来看,
sharding-jdbc
需要集成在应用内,集成到代码里
,使得开发成本相对较高;而mycat
大致上是无损开发,不需要怎么修改代码,交给mycat去托管,分库分表等代码无需太多关注。