doris、tidb,主要还是那会doris稳定性不行
一、 调研的数据库列表
我们的调研主要围绕解决可扩展性、高可用性、SQL 兼容性以及运维复杂度这几个核心痛点。因此,我们重点关注了以下几类数据库:
- 传统关系型数据库 (RDBMS)
MySQL / PostgreSQL: 作为基准进行对比。它们生态成熟、应用广泛,但我们面临的业务存在明显的单机瓶颈问题,分库分表方案又带来了巨大的应用改性和运维复杂度。 - NewSQL 数据库 (核心调研类别)
TiDB: PingCAP 公司开发,开源分布式关系型数据库。
Google Cloud Spanner / CockroachDB: Spanner 是这一领域的开创者,但作为云托管的闭源产品,限制较多。CockroachDB 是 Spanner 的开源实现,与 TiDB 是直接竞品。
YugabyteDB: 另一个重要的分布式 SQL 数据库,兼容 PostgreSQL 协议。 - NoSQL 数据库 (作为特定场景的补充考量)
MongoDB: 文档型数据库,考虑用于非结构化或半结构化数据场景。
Cassandra / ScyllaDB: 宽列存储,考虑用于高吞吐的写入场景。
Redis: 作为缓存和会话存储的选项,不参与主数据库的竞争。
二、 为什么最终选择了 TiDB?
具体决策依据如下:
-
高度兼容 MySQL 协议
迁移成本极低:我们的核心业务原本就基于 MySQL。TiDB 对 MySQL 协议和语法的高度兼容,使得我们绝大多数业务代码无需修改或仅需极少修改即可平滑迁移。这对于一个已有庞大业务系统的团队来说,是至关重要的“杀手级”特性。
生态工具无缝对接:我们可以继续使用现有的 MySQL 生态工具,如 mysqldump、Navicat、以及各种 ORM 框架,团队成员学习成本低,上手快。 -
真正的弹性扩展与高可用性
无缝水平扩展:TiDB 的计算层 (TiDB Server) 和存储层 (TiKV) 均可独立、在线地水平扩展。当业务遇到瓶颈时,我们只需要简单地添加节点即可提升整体性能或存储容量,整个过程对业务透明,无需停机和数据迁移。这完美解决了我们因业务快速增长带来的不确定流量和数据量问题。 -
强大的分布式事务支持
TiDB 默认支持分布式 ACID 事务,这对于我们核心业务中如订单、账户等需要强一致性的场景是必需的。这让我们在享受分布式系统扩展性的同时,无需在应用层处理复杂的一致性补偿逻辑。 -
活跃的开源社区与成熟的商业支持
TiDB 拥有非常活跃和健康的开源社区,这意味着我们能快速获得帮助,跟进最新的功能和发展趋势。同时,PingCAP 公司提供了专业的商业支持,这对于企业级应用的稳定性和出了问题后能找到“负责人”至关重要。
优势在哪:
1.无需分库分表:彻底告别了分库分表带来的应用层路由、分布式事务、全局唯一ID、跨库查询等复杂性。
2.运维自动化:自动负载均衡、自动故障转移,运维复杂度从“地狱级”降至“普通级”。
3.扩展性更优雅:扩展是连续的、平滑的,而分库分表往往需要预估未来,提前规划,后期调整非常痛苦。
- 你们在数据库选型的时候调研了哪些数据库?
MySQL、 PostgreSQL、Tidb - 最后为什么选择了 TiDB ?原因是什么?
在分布式扩展性、MySQL 兼容性、HTAP 能力、高可用性与运维便利性之间实现了最佳平衡 ,特别适合从 MySQL 平滑演进至分布式架构的场景。
在数据库选型过程中,我们团队对市面上主流的几种数据库解决方案进行了全面调研。我们重点考察了传统关系型数据库如MySQL和PostgreSQL,它们在稳定性和生态成熟度方面表现良好;也深入评估了NewSQL领域的CockroachDB,以及以MongoDB为代表的文档数据库。此外,我们还分析了像Amazon Aurora这样的云原生数据库。通过多维度对比,我们发现这些数据库在应对我们业务未来可能面临的海量数据和高并发场景时,都存在一定局限性——要么分布式能力不足,要么需要大量的应用层分片改造,要么运维复杂度较高。
最终我们选择了TiDB作为核心业务数据库,主要基于以下几个关键考量:首先,TiDB具备强一致的分布式事务能力,完全兼容MySQL协议,这使得我们现有的应用可以几乎无缝迁移,大幅降低了迁移成本和风险。其次,其独特的存储与计算分离架构提供了极致的弹性扩展能力,无论是存储容量还是计算性能都可以独立按需扩展,完美匹配了我们业务快速发展的需求。最重要的是,TiDB在保证分布式架构优势的同时,提供了媲美传统单机数据库的ACID事务特性,这在同类产品中是难得的组合。经过一段时间的实际使用,TiDB确实以其出色的水平扩展性、高可用性和简化的运维体验,证明了我们选择的正确性。
- 你们在数据库选型的时候调研了哪些数据库?
MySQL、 PostgreSQL、Tidb、达梦数据库 - 最后为什么选择了 TiDB ?原因是什么?
在分布式扩展性、MySQL 兼容性、HTAP 能力、高可用性与运维便利性之间实现了最佳平衡 ,特别适合从 MySQL 平滑演进至分布式架构的场景。
1、你们在数据库选型的时候看了哪些数据库?
mysql,pgsql,oracle,tidb
2、最后为什么选择了 TiDB ?原因是什么?
兼容 mysql 协议,支持横向扩容,数据分析
搞不定开发去做分库分表,只能考虑tidb。
- 你们在数据库选型的时候调研了哪些数据库?
调研了阿里云开源版本Polar DB, 阿里云在售的Polar DB, ClickHouse, OceanBase - 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
我们的客户私有化自己部署至自己的机房,我们只考虑可以部署在本地的数据库,因为我们之前自己的平台使用的是阿里云Polar DB。所以一开始在选型的时候,也使用了开源版本Polar DB, 但是在实际使用的情况下,当数据超过500w时,性能非常差,查见的查询已经要2-3s。不得以,我们对现在常用的数据库进行了调研。我们针对数据库的价格,性能,以及当前平台数据发展的趋势,最终选择了TiDB用到客户的平台上,为自己平台后续迁移打下基础。
下面我们之前的对比
数据迁移.pdf (5.5 MB)
1. 数据库选型调研范围
团队重点调研了三类数据库:传统关系型数据库(如Oracle、MySQL、PostgreSQL),NoSQL数据库(如MongoDB、Redis、HBase),以及NewSQL分布式数据库(如CockroachDB、TiDB),覆盖从强一致性到高扩展性的不同技术路线。
2. 选择TiDB的核心原因及优势
选择TiDB主要因其存算分离架构支持弹性扩缩容、HTAP能力实现OLTP与OLAP混合负载,且完全兼容MySQL生态,迁移成本低;相比其他数据库,其优势在于金融级高可用性、分布式强一致性及实时分析能力,尤其适合高并发与复杂查询场景。
- 你们在数据库选型的时候调研了哪些数据库?
tidb\mysql\kingbase\达梦\gaussdb - 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
开源代码、社区活跃、可扩展性、高可用性方面优势明显。
- 你们在数据库选型的时候调研了哪些数据库?
京东合作的tidb,华为云的高斯和DDM,阿里云的 PolarDB和adb,腾讯云的tdsql和tbase - 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
最后因为某些原因没有用tidb,这个上层博弈。。。。,不需要分库分表,HTAP一套集群可以提供交易和tiflash提供查询
1、你们在数据库选型的时候看了哪些数据库?
kingbase、 Dameng、TiDB
2、最后为什么选择了 TiDB ?原因是什么?
兼容性好,社区活跃,而且满足信创需求。
[quote=“Billmay表妹, post:1, topic:1048750”]
调研问题
- 你们在数据库选型的时候调研了哪些数据库?
- MySQL 分库分表中间件: 比如市面上常见的 MyCAT, Sharding-Sphere 等。
- 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
说实话,分库分表方案最先被否了。虽然能解决眼前的问题,但对业务的侵入性太强,而且后续的运维、扩容、DDL 变更简直是噩梦,属于“治标不治本”。
最后在 TiDB 和其他 NewSQL 之间选择,TiDB 的优势太明显了:
- 高度兼容 MySQL 协议: 这是最最最重要的一点!对开发同学太友好了,学习成本低,已有的应用和工具链几乎不用改就能平滑迁移,大大降低了落地阻力。
- 真正的弹性伸缩: 就像官方宣传的那样,“按需扩容/缩容”,加机器就行了。这对我们这种业务量波动大、数据增长快的场景来说是刚需。再也不用半夜起来搞扩容了。
- 活跃的中文社区: 这一点非常加分。用的人多,文档全,遇到问题在 askTUG 上搜一搜、问一问,基本都能很快解决。不像用某些国外的产品,遇到问题两眼一抹黑。
- HTAP(虽然我们用得还不多): 这个“一个数据库搞定所有”的理念很有吸引力,虽然现在主要还是用它的 TP(事务)能力,但保留了未来做实时分析(AP)的可能性,技术栈不用那么臃肿。
你们在数据库选型的时候调研了哪些数据库?
调研了ob,tidb
最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
兼容mysql协议,应用改动较小。
列存对于BI比较友好
- 你们在数据库选型的时候调研了哪些数据库?
达梦、GoldenDB、Hashdata - 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
分布式数据库,弹性扩缩容、迁移MySQL业务非常适合,同时兼顾OLTAP和部分OLAP场景,TiDB社区活跃,技术分享及认证培训多样性
1、你们在数据库选型的时候看了哪些数据库?
Oceanbase, gaussdb
2、最后为什么选择了 TiDB ?原因是什么?
未确定,但被TiDB兼容MySQL、可以灵活的扩/缩容,HTAP均可支持吸引,考虑信创替代。
1、你们在数据库选型的时候看了哪些数据库?
openGauss、Vastdata、PG、MySQL、OceanBase、GBase、TiDB 等
2、最后为什么选择了 TiDB ?原因是什么?
优秀的水平扩展,维护简单。
数据库选型考虑的候选库
在项目初期,我们主要评估了以下数据库:MySQL、PostgreSQL、Oracle、TiDB 以及部分 NoSQL 方案(如 MongoDB、Redis),重点考察它们在 水平扩展能力、事务支持、高可用性、运维复杂度以及生态成熟度 等方面的表现。
选择 TiDB 的原因
最终选择 TiDB,主要基于以下原因:
1、水平扩展能力强:TiDB 原生支持分布式架构,能够轻松横向扩展,满足数据量快速增长的需求。
2、兼容 MySQL:应用迁移成本低,无需大幅修改现有业务 SQL。
3、事务与强一致性:支持分布式事务(ACID),确保业务数据一致性。
4、高可用与自动运维:内置 Raft 协议实现副本容灾,运维相对简化。
5、社区与生态成熟:活跃社区支持及多种工具链,利于后续监控、备份及运维管理。
整体而言,TiDB 在 分布式性能、可靠性和易用性 方面兼顾了业务增长和运维成本,最符合我们的业务需求。
1、你们在数据库选型的时候调研了哪些数据库?
TiDB、TDSQL、gaussdb
2、最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
因为TiDB是真正的信创自研数据库,中国人自己的国货,必须支持。而且性能也不差。
- 你们在数据库选型的时候调研了哪些数据库?
OceanBase、金仓、DM、TiDB - 最后为什么选择了 TiDB ?原因是什么?你觉得 TiDB 对比其他你调研的数据库,优势在哪里?
还没有确定,最主要是考虑到了对MySQL的兼容性和适配性,最主要的是成本以及国产化需求