你们在数据库选型的时候看了哪些数据库?最后为什么选择了 TiDB ?

调研问题

  1. 你们在数据库选型的时候调研了哪些数据库?
  2. 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
5 个赞

1、你们在数据库选型的时候看了哪些数据库?
mysql、mycat、tidb
2、最后为什么选择了 TiDB ?原因是什么?
最开始是因为兼容mysql协议、动态横向扩容和支持大数据分析,后来加上了一条国产化要求。

3 个赞
  1. 你们在数据库选型的时候看了哪些数据库?
  • TiDB、OceanBase
  1. 最后为什么选择了 TiDB ?原因是什么?
  • 主要平替MySQL,不考虑OceanBase企业版Oracle功能,TiDB和OceanBase都是分布式数据库,但OceanBase更聚焦在Oracle,TiDB对MySQL的兼容性和周边工具的兼容性更好,TP和AP类业务有不同的存储层处理
  • 另外就是OceanBase太重了,小型部署前期投入资源依旧比较大,TiDB更轻量化

1、你们在数据库选型的时候看了哪些数据库?
MySQL、 PostgreSQL、TiDB
2、最后为什么选择了 TiDB ?原因是什么?
还未最终确定,但被TiDB兼容MySQL协议、可以灵活的扩/缩容,OLTP、OLAP均可支持且互不影响等等特性吸引,同时考虑未来可能有的国产化要求。

  • 你们在数据库选型的时候调研了哪些数据库?
    Mysql、postgresql 、tidb
  • 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?

核心原因:我们当时的业务面临的核心痛点是“ scalability(可扩展性)” 和 “HTAP(混合负载)” 需求,而 TiDB 在满足这些需求的同时,提供了最低的迁移成本和风险。

我们的业务正在高速增长,数据量和访问量预计在未来1-2年内会达到单机数据库的瓶颈。我们既需要处理高并发的在线事务(OLTP),又需要对实时数据进行复杂的分析查询(OLAP)以支持决策。如果采用传统分库分表方案,会带来极高的应用改造成本和运维复杂度,并且无法很好地支持实时分析。

TiDB 对比其他数据库的优势
下面我针对我们调研的数据库,逐一对比 TiDB 的优势所在:

  1. 对比 MySQL

无限水平扩展 vs 分库分表: TiDB 通过简单的增加节点即可实现计算和存储的线性扩展,对应用完全透明。而 MySQL 分库分表需要业务层进行大量改造,后期运维复杂,且跨分片查询、分布式事务是噩梦。

真正的 HTAP 能力 vs OLTP 为主: TiDB 通过独立的 TiFlash 分析引擎,实现在同一套系统中进行 OLTP 和 OLAP 处理,数据强一致,且分析查询不影响在线业务性能。MySQL 需要搭建单独的 ETL 和数据仓库,数据有延迟。

高可用性: TiDB 基于 Raft 协议实现数据多副本,自动故障转移,对业务无感知。MySQL 需要依赖 MHA、Orchestrator 等外部工具,配置和维护更复杂。

  1. 对比 PostgreSQL
    分布式架构的成熟度与易用性: PostgreSQL 本身非常强大,但其分布式生态(如 Citus)在易用性、稳定性和社区支持度上,与 TiDB 这种“出生就是分布式”的数据库相比有差距。TiDB 的部署和运维体验更一体化、更简单。

与现有技术栈的兼容性: 我们的技术栈大量围绕 MySQL 协议和生态构建。TiDB 高度兼容 MySQL 5.7 协议,使得我们现有的应用代码、ORM、中间件(如连接池)、监控工具几乎可以无缝迁移,学习成本和迁移风险极低。而迁移到 PostgreSQL 则意味着巨大的代码改造和团队技能转型。

HTAP 架构的先进性: TiDB 的 TiFlash 列存引擎是其 HTAP 能力的核心,与行存引擎(TiKV)的协同工作是天生的。PG 虽然功能强大,但要实现同等效果的实时 HTAP 架构,需要组合更多外部组件。

感谢 写得非常具体,学习了~

  1. 你们在数据库选型的时候调研了哪些数据库?
    MySQL, PostgreSQL, Oracle,TiDB

  2. 最后为什么选择了 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. 你们在数据库选型的时候调研了哪些数据库?
    tidb,goldebdb,greatsql,ob
  2. 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
    还没最终选择,我觉得tidb的优势是兼容性,成本低。
  1. 你们在数据库选型的时候调研了哪些数据库?
    tidb,greatsql
  2. 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
    分布式数据库,灵活性更高,横向扩缩容更方便,一条命令搞定,行存列存并行,OLTP、OLAP两不误。
1 个赞
  1. 你们在数据库选型的时候调研了哪些数据库?
    tidb,vitess
  2. 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
    不用分库分表,省心。语法支持比较好,可视化做的比较好,比较方便定位问题。

1、你们在数据库选型的时候看了哪些数据库?
MySQL、OceanBase、PostgreSQL、TiDB、openGauss
2、最后为什么选择了 TiDB ?原因是什么?
1)社区活跃
2)运维方便(自带dashboard和grafana监控)、不停机扩缩容和滚动升级
3)同时支持OLTP、OLAP
4)兼容 MySQL 协议,迁移和开发人员学习成本低
5)周边工具齐全,如lighting、dumpling、BR等

  1. 你们在数据库选型的时候调研了哪些数据库?
    为了信创背景下,以后的项目顺利推进,主要在国产数据库中选择,当时看了TiDb,OceanBase,openGauss,达梦数据库,人大金仓。
  2. 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
    因为公司项目情况背景,需要找一款同时存在商用版和免费版的数据库,最好能有开源版本,同时又要兼顾性能和尽可能小的改造成本。
    满足以上几点的情况下,当时剩下的选择主要在TiDb和openGauss,但openGauss部署受限于单台服务器处理能力,无法横向扩展,商用版本GaussDb了解下来基本重写了底层逻辑;与此对比下来,Tidb的特性全是优点,开源免费,商业版本的数据库底层功能一致,性能优势明显,天然支持分布式,可扩展性很棒,且兼容MySql协议(公司大部分项目均使用MySql),最终就向公司推荐选定了TiDb作为国产数据库的主要使用产品。
    再对比其他几个备选数据库,达梦数据库和人大金仓的性能和扩展性都比不上tidb,而且非开源的,作为准备长期使用和研究的数据库,首先就排除了。OceanBase本身就了解的信息来说,其实也挺优秀的(没实际体验过,就了解到的信息来对比),性能和功能均不弱,只是开源版本与企业版存在较多不一致的情况,有很多功能、性能缺失,反观Tidb社区商业版本功能基本上都是一致的,完全开源,还支持HTAP,扩展方便,大项目场景下性能优势明显,结合公司和自身因素的考量,如果只能选择一款数据库来深入学习和使用,目前来说只有TiDb一个选择。

在进行数据库选型时,我们主要对比了 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兼容性以及高可用性方面提供了一个均衡且强大的解决方案。

Q1: 你们在数据库选型时调研了哪些数据库?

A1:在项目初期进行数据库选型时,我们重点调研了以下几类分布式数据库产品:

  • TiDB :PingCAP开源的分布式关系型数据库,具备HTAP混合负载能力
  • OceanBase :蚂蚁集团推出的原生分布式关系数据库,强调金融级高可用性
  • PolarDB :阿里云的云原生数据库,采用计算存储分离架构
  • CockroachDB :与TiDB类似的分布式SQL数据库,但国内生态支持相对较弱
  • 传统MySQL分库分表方案 :基于中间件的传统分布式解决方案

这些产品都代表了当前分布式数据库的不同技术路线,我们从架构特性、性能表现、生态兼容性和成本效益等多个维度进行了综合评估。

Q2: 最后为什么选择了TiDB?

A2:我们最终选择TiDB主要基于以下几个关键因素:

  • MySQL协议兼容性 是我们考量的首要因素。TiDB高度兼容MySQL 5.7协议和生态,这意味着我们现有的应用程序几乎不需要修改代码就能迁移到TiDB,极大降低了迁移成本和团队学习曲线。
  • 真正的弹性扩展能力 是另一个核心考量。TiDB采用计算、存储分离的架构设计,允许我们对计算和存储资源分别进行在线扩缩容,且对应用透明,无需停机或数据迁移,这为业务快速增长提供了坚实基础。
  • HTAP混合负载支持 满足了我们对实时业务分析和决策的需求。通过行存引擎TiKV和列存引擎TiFlash的协同工作,TiDB能够在一套系统中同时处理OLTP和OLAP工作负载,避免了传统上需要将数据从OLTP库同步到分析型数据仓库的复杂流程。

Q3: 选择TiDB的具体原因是什么?

A3:从技术层面深入分析,我们选择TiDB基于以下具体原因:

  • 分布式事务支持 方面,TiDB基于Raft实现了完整的ACID分布式事务,通过两阶段提交协议保证跨节点事务的原子性,满足了我们业务中对数据强一致性的要求。
  • 高可用性机制 上,TiDB基于Raft共识算法实现数据多副本自动同步和故障自动转移,确保了集群的高可用性。这种机制比传统主从复制更为可靠,能够实现自动故障切换且保证数据零丢失。
  • 运维便利性 也是重要考量。TiDB提供了完善的监控告警体系TiDB Dashboard,支持在线滚动升级、在线调整配置参数等,大大降低了分布式数据库的运维复杂度。
  • 实际案例参考 增强了我们的信心。丰富广泛的行业实践案例,证明了TiDB在大型生产环境中的稳定性和性能表现。

Q4: 你觉得TiDB对比其他调研的数据库,优势在哪里?

A4:与其它调研的数据库相比,TiDB的优势体现在以下几个维度:

  • 架构先进性 方面,TiDB的层次化架构(TiDB计算层、PD调度层、TiKV/TiFlash存储层)实现了真正的计算存储分离和弹性伸缩能力,相比传统一体式架构具有更好的资源利用率和扩展灵活性。
  • 生态整合度 上,TiDB无缝集成到现代数据技术栈中,支持与Spark、Flink等大数据组件协同工作,提供了TiSpark等工具直接在海量数据上执行复杂分析,形成了完整的数据处理生态系统。
  • 开源开放性 是TiDB的另一大优势。作为开源项目,TiDB拥有活跃的社区支持和透明的开发进程,避免了厂商锁定风险,同时保证了企业在遇到问题时能够获得多元化的技术支持渠道。
  • 性能表现 上,TiDB在读写密集型场景下表现优异,特别是在混合负载环境下,其优化器能够智能地区分OLTP和OLAP查询,并将其路由到最适合的执行引擎,确保了整体性能最优化。

综合来看,TiDB在技术先进性、生态完善度、成本效益和社区支持等方面形成了组合优势,使其成为我们项目分布式数据库选型的最佳选择。

PS: 双肩包和冲锋衣都和TiDB这款产品一样Ti棒了,喜欢的小伙伴们不要犹豫赶快体验和参加活动吧。 :tada: :tada: :tada:

我们在数据库选型时主要考察了以下几类数据库:

考察的数据库

关系型数据库:

  • MySQL
  • PostgreSQL
  • Oracle

分布式数据库:

  • TiDB
  • CockroachDB
  • OceanBase
  • PolarDB

NoSQL数据库:

  • MongoDB
  • Cassandra
  • ClickHouse

选择 TiDB 的核心原因

  1. HTAP混合负载能力 - 能同时处理事务和分析查询,无需维护两套系统

  2. 水平扩展性 - 轻松应对业务数据从2TB到50TB+的增长

  3. MySQL完全兼容 - 迁移成本极低,现有代码和工具链可直接使用

  4. 高可用和强一致性 - 金融级可靠性,自动故障转移

  5. 活跃的国内生态 - 社区活跃,文档完善,技术支持响应及时

放弃其他选项的主要原因

  • CockroachDB:PostgreSQL协议迁移成本高,国内生态弱
  • OceanBase:开源版本功能有限,学习曲线陡峭
  • MySQL集群:分库分表复杂,分布式事务支持差
  • NoSQL:不支持复杂SQL查询和ACID事务

TiDB在性能、扩展性、兼容性和运维成本方面取得了最佳平衡,完美匹配了我们业务高速增长和技术架构简化的双重需求。并且我们已经从TiDB v3.0 使用到了现在 v7.1了

经过多个版本升级 :grinning:

在调研 MySQL、PostgreSQL、MongoDB、CockroachDB、YugabyteDB 等数据库后,
最终选择 TiDB 的关键原因是它在分布式一致性、水平扩展性、MySQL 兼容性、
以及高可用性方面达到了最平衡的状态。

我们不需要改业务代码,却获得了分布式数据库的能力;
不需要做分库分表,也能线性扩容;
同时 TiDB 的 HTAP 能力让我们对实时分析场景也有足够覆盖。

另外:
社区很丰富, 也是重要的一点哟