tidb与mysql_mycat对比

TiDB 具备如下特性:

  1. 高度兼容 MySQL

大多数情况下,无需修改代码即可从 MySQL 轻松迁移至 TiDB,分库分表后的 MySQL 集群亦可通过 TiDB 工具进行实时迁移。

2.水平弹性扩展

通过简单地增加新节点即可实现 TiDB 的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景。

3.分布式事务

TiDB 100% 支持标准的 ACID 事务。

4.真正金融级高可用

相比于传统主从 (M-S) 复制方案,基于 Raft 的多数派选举协议可以提供金融级的 100% 数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复 (auto-failover),无需人工介入。

  1. 一站式 HTAP 解决方案

TiDB 作为典型的 OLTP 行存数据库,同时兼具强大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP 解决方案,一份存储同时处理 OLTP & OLAP,无需传统繁琐的 ETL 过程。

6.云原生 SQL 数据库

TiDB 是为云而设计的数据库,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。

 

TiDB 的典型的应用场景是:

1. 原业务的 MySQL 的业务遇到单机容量或者性能瓶颈时,可以考虑使用 TiDB 无缝替换 MySQL。TiDB 可以提供如下特性:

 

1.吞吐量、存储和计算能力的水平扩展

2.水平伸缩时不停服务

3.强一致性分布式 ACID 事务

 

2. 大数据量下,MySQL 复杂查询很慢。

3. 大数据量下,数据增长很快,接近单机处理的极限,不想分库分表或者使用数据库中间件等对业务侵入性较大、对业务有约束的 Sharding 方案。

4. 大数据量下,有高并发实时写入、实时查询、实时统计分析的需求。

5. 有分布式事务、多数据中心的数据 100% 强一致性、auto-failover 的高可用的需求。

 

MyCAT功能

Mycat的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,当Mycat收到一个SQL时,会先解析这个SQL,查找涉及到的表,然后看此表的定义,如果有分片规则,则获取到SQL里分片字段的值,并匹配分片函数,得到该SQL对应的分片列表,然后将SQL发往这些分片去执行,最后收集和处理所有分片返回的结果数据,并输出到客户端。

应用场景

1.单纯的读写分离,此时配置最为简单,支持读写分离,主从切换分表分库,对于超过1000万的表进行分片,最大支持1000亿的单表分片

2.多租户应用,每个应用一个库,但应用程序只连接Mycat,从而不改造程序本身,实现多租户化

3.报表系统,借助于Mycat的分表能力,处理大规模报表的统计替代Hbase,分析大数据

作为海量数据实时查询的一种简单有效方案,比如100亿条频繁查询的记录需要在3秒内查询出来结果,除了基于主键的查询,还可能存在范围查询或其他属性查询,此时Mycat可能是最简单有效的选择

4.强化分布式数据库中间件的方面的功能,使之具备丰富的插件、强大的数据库智能优化功能、全面的系统监控能力、以及方便的数据运维工具,实现在线数据扩容、迁移等高级功能

.

 

Tidb与Mycat对比

  1. 在Mycat非分片字段查询时,Mycat无法计算分片路由会发送到所有节点进行查询浪费大量数据库资源,所以在涉及到复杂查询条件进行查询时不推荐使用Mycat.
  2. 分布式事务,Mycat并没有根据二阶段提交协议实现 XA事务,而是只保证 prepare 阶段数据一致性的 弱XA事务 ,不能完全保证数据一致性,Tidb基于 Raft 的多数派选举协议可以提供金融级的 100% 数据强一致性保证.
  3. 在数据量大业务数据增长快的情况,Tidb在扩容方面只需要增加新节点就可以完成水平扩展,Mycat如果是根据一致性Hash进行分片需要重新制定分片规则,如果是根据范围分片也需要重新制定分片范围,扩容时需要停止新增业务备份数据库数据,需要大量运维工作.

猜你喜欢

转载自blog.csdn.net/tiandao321/article/details/85760275