调研问题
- 你们在数据库选型的时候调研了哪些数据库?
- 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
1、你们在数据库选型的时候看了哪些数据库?
mysql、mycat、tidb
2、最后为什么选择了 TiDB ?原因是什么?
最开始是因为兼容mysql协议、动态横向扩容和支持大数据分析,后来加上了一条国产化要求。
1、你们在数据库选型的时候看了哪些数据库?
MySQL、 PostgreSQL、TiDB
2、最后为什么选择了 TiDB ?原因是什么?
还未最终确定,但被TiDB兼容MySQL协议、可以灵活的扩/缩容,OLTP、OLAP均可支持且互不影响等等特性吸引,同时考虑未来可能有的国产化要求。
核心原因:我们当时的业务面临的核心痛点是“ scalability(可扩展性)” 和 “HTAP(混合负载)” 需求,而 TiDB 在满足这些需求的同时,提供了最低的迁移成本和风险。
我们的业务正在高速增长,数据量和访问量预计在未来1-2年内会达到单机数据库的瓶颈。我们既需要处理高并发的在线事务(OLTP),又需要对实时数据进行复杂的分析查询(OLAP)以支持决策。如果采用传统分库分表方案,会带来极高的应用改造成本和运维复杂度,并且无法很好地支持实时分析。
TiDB 对比其他数据库的优势
下面我针对我们调研的数据库,逐一对比 TiDB 的优势所在:
无限水平扩展 vs 分库分表: TiDB 通过简单的增加节点即可实现计算和存储的线性扩展,对应用完全透明。而 MySQL 分库分表需要业务层进行大量改造,后期运维复杂,且跨分片查询、分布式事务是噩梦。
真正的 HTAP 能力 vs OLTP 为主: TiDB 通过独立的 TiFlash 分析引擎,实现在同一套系统中进行 OLTP 和 OLAP 处理,数据强一致,且分析查询不影响在线业务性能。MySQL 需要搭建单独的 ETL 和数据仓库,数据有延迟。
高可用性: TiDB 基于 Raft 协议实现数据多副本,自动故障转移,对业务无感知。MySQL 需要依赖 MHA、Orchestrator 等外部工具,配置和维护更复杂。
与现有技术栈的兼容性: 我们的技术栈大量围绕 MySQL 协议和生态构建。TiDB 高度兼容 MySQL 5.7 协议,使得我们现有的应用代码、ORM、中间件(如连接池)、监控工具几乎可以无缝迁移,学习成本和迁移风险极低。而迁移到 PostgreSQL 则意味着巨大的代码改造和团队技能转型。
HTAP 架构的先进性: TiDB 的 TiFlash 列存引擎是其 HTAP 能力的核心,与行存引擎(TiKV)的协同工作是天生的。PG 虽然功能强大,但要实现同等效果的实时 HTAP 架构,需要组合更多外部组件。
感谢 写得非常具体,学习了~
你们在数据库选型的时候调研了哪些数据库?
MySQL, PostgreSQL, Oracle,TiDB
最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
TiDB 的核心优势在于其原生分布式架构带来的强大扩展性、真正的 HTAP 混合负载能力以及与 MySQL 的高度兼容性。它能通过简单的水平扩展处理海量数据(PB级别),并借助行列混合存储引擎(TiKV + TiFlash)同时高效处理在线事务与实时分析,避免了传统上需要维护多套数据库的复杂性和数据延迟。同时,TiDB 兼容 MySQL 5.7 协议及生态,使得从 MySQL 迁移的成本极低,并提供了金融级的高可用和数据一致性保障。
1.在数据库选型阶段,我们调研了 TiDB、OceanBase、MySQL、openGauss、KingbaseES、MongoDB 重点考察了扩展性、一致性、HTAP 能力、MySQL 兼容性、云原生运维、综合成本 6 个维度。
2.
1)水平扩展无需业务改造
2)原生分布式事务与金融级高可用
3)一份数据实时 HTAP
4)完全兼容 MySQL 协议,迁移成本低
1、你们在数据库选型的时候看了哪些数据库?
MySQL,PostgreSQL,TiDB
2、最后为什么选择了 TiDB ?原因是什么?
因为兼容mysql协议,可以不停机扩容和支持大数据分析,文档完善版本及时更新,社区也做的非常好
1、你们在数据库选型的时候看了哪些数据库?
MySQL、OceanBase、PostgreSQL、TiDB、openGauss
2、最后为什么选择了 TiDB ?原因是什么?
1)社区活跃
2)运维方便(自带dashboard和grafana监控)、不停机扩缩容和滚动升级
3)同时支持OLTP、OLAP
4)兼容 MySQL 协议,迁移和开发人员学习成本低
5)周边工具齐全,如lighting、dumpling、BR等
在进行数据库选型时,我们主要对比了 TiDB 和 OceanBase 这两款主流的国产分布式数据库。虽然也了解过 MySQL 及其分库分表方案,但主要是作为传统关系的参照。
我们最终选择 TiDB 的核心原因及其主要优势点:
1.存算分离架构,支持计算与存储资源独立、在线、无缝扩缩容.
2.具备 HTAP 混合负载能力,能同时处理在线事务和实时分析.
3.高度兼容 MySQL 协议与生态,从现有 MySQL 系统迁移成本低,学习曲线平滑.
4.基于 Raft 协议的多副本机制,提供金融级高可用和强一致性,故障可自动恢复.
在选型过程中,我们也深入评估了其他方案:
1.传统MySQL及其分库分表方案:在业务初期可能是不错的选择。但随着数据量增长,分库分表带来的复杂性(如需要精心设计分片键、业务代码侵入性强、后期调整困难)以及运维成本的急剧上升是我们希望避免的。此外,它通常难以直接支持复杂的分布式事务和实时分析查询。
2.OceanBase:OceanBase 是一款非常优秀的数据库,尤其在金融级高可用和强一致性方面表现卓越。但其架构对硬件要求较高,且其开源版本的功能与企业版存在差异,对于我们而言,TiDB 完全开源的策略和活跃的社区在当时是更具吸引力的。
最终选择TiDB,除了前面提到的优势以外,以下几点额外优势巩固了我们的选择:
对应用透明的弹性扩展:得益于其底层架构,TiDB 在扩展时无需业务方关心数据分片(Sharding)问题,对应用程序几乎是透明的,这极大地简化了开发。
强大的开源生态与可观测性:TiDB 拥有非常活跃和健康的开源社区,这意味着我们能获得更快的问题解答和持续的迭代更新。同时,它提供了完善的监控工具链(如内置的 Grafana 和 Dashboard),便于我们洞察集群状态和排查问题。
明确的场景契合度:TiDB 非常适合我们的业务场景,包括高并发的互联网业务、需要替代MySQL以避免分库分表的场景,以及有实时大数据量统计分析需求的场景。
总结来说,我们选择 TiDB,是因为它在扩展性、HTAP能力、MySQL兼容性以及高可用性方面提供了一个均衡且强大的解决方案。
这些产品都代表了当前分布式数据库的不同技术路线,我们从架构特性、性能表现、生态兼容性和成本效益等多个维度进行了综合评估。
综合来看,TiDB在技术先进性、生态完善度、成本效益和社区支持等方面形成了组合优势,使其成为我们项目分布式数据库选型的最佳选择。
PS: 双肩包和冲锋衣都和TiDB这款产品一样Ti棒了,喜欢的小伙伴们不要犹豫赶快体验和参加活动吧。
![]()
我们在数据库选型时主要考察了以下几类数据库:
关系型数据库:
分布式数据库:
NoSQL数据库:
HTAP混合负载能力 - 能同时处理事务和分析查询,无需维护两套系统
水平扩展性 - 轻松应对业务数据从2TB到50TB+的增长
MySQL完全兼容 - 迁移成本极低,现有代码和工具链可直接使用
高可用和强一致性 - 金融级可靠性,自动故障转移
活跃的国内生态 - 社区活跃,文档完善,技术支持响应及时
TiDB在性能、扩展性、兼容性和运维成本方面取得了最佳平衡,完美匹配了我们业务高速增长和技术架构简化的双重需求。并且我们已经从TiDB v3.0 使用到了现在 v7.1了
经过多个版本升级 ![]()
在调研 MySQL、PostgreSQL、MongoDB、CockroachDB、YugabyteDB 等数据库后,
最终选择 TiDB 的关键原因是它在分布式一致性、水平扩展性、MySQL 兼容性、
以及高可用性方面达到了最平衡的状态。
我们不需要改业务代码,却获得了分布式数据库的能力;
不需要做分库分表,也能线性扩容;
同时 TiDB 的 HTAP 能力让我们对实时分析场景也有足够覆盖。
另外:
社区很丰富, 也是重要的一点哟