您现在的位置是:首页 > 文章详情

从MySQL到TiDB:业务高速增长与数据库选型趋势

日期:2025-02-18点击:28

最近《哪吒2》全球票房持续高涨,目前已成功跻身全球影史票房榜前八。票房从上映到破 100 亿大关仅用了 16 天。

那么,16 天的时间,能够完成多少套 MySQL 集群的扩容、数据重平衡任务呢?如果选择 TiDB,那么这项任务的耗时可以压缩到分钟级。本文一起来探讨一下 MySQL 和 TiDB 的架构选型。

MySQL 数据库至今仍是全球最受欢迎的开源关系型数据库,广泛应用于中小企业、传统行业和开源项目。LAMP (Linux + Apache + MySQL + PHP) 架构凭借其稳定性和成熟度,成为众多中小型项目或网站的首选方案。MySQL 的高可用架构相对传统,常见架构有单机、主从、分库分表等。虽然 MySQL 提供了 MySQL NDB Cluster 和 MySQL InnoDB Cluster 集群架构,但其在可扩展性、弹性扩容、性能表现等方面的瓶颈仍是可预见的,这些限制在企业业务面对高速发展和数据量激增的情况下愈发明显。

TiDB 是一款 HTAP 云原生分布式数据库产品,随着企业业务高速发展,数据量井喷式增长,TiDB 的水平扩容、强一致性特性在大数据规模场景中表现出众。TiDB 兼容 MySQL 协议、MySQL 常用功能和 MySQL 生态,应用无需或者修改少量代码即可从 MySQL 迁移到 TiDB,极大的降低了迁移成本和风险。

如果你正面临 TB 级以上数据计算处理的需求,并且正考虑将数据从 MySQL 或其他数据库迁移到性能更强、扩展性更好的数据库,那么,TiDB 无疑是你的理想选择。(题外话,理想汽车也在用 TiDB)

(数据来源:https://asktug.com/t/topic/1028116/23?u=shawnyan

从 MySQL 迁移到 TiDB 的技术优势

TiDB 的架构旨在处理大规模数据和高并发性,这使其在可扩展性和性能方面比 MySQL 更具优势。TiDB 采用分布式存储引擎 TiKV,分布式计算引擎 TiDB Server 以及列式存储引擎 TiFlash,通过向集群添加更多节点即可轻松实现水平扩展。这种扩展能力使 TiDB 能够处理海量数据和高事务率,且不会显著降低性能。相比之下,MySQL 的可扩展性较为局限,且维护不便,尤其是在数据量和并发性要求极高的场景中。

在数据一致性方面,TiDB 实现了 Raft 共识算法,来确保集群中所有节点的数据一致性。数据在多个节点之间复制,并且对数据的任何更改都会以一致的方式传播。这种强一致性对于需要高数据完整性和可靠性的应用程序(例如金融系统和电子商务平台)至关重要。虽然 MySQL Group Replication 或者 MySQL Galera Cluster 虽然也可以保证强一致性,但以性能损耗为代价。而 TiDB 节点和 TiKV 节点在将节点数扩展到 10 个后,性能偏差系数仍保持较小的值,真正做到了性能与节点数的线性增长。

很多企业或用户对存储过程的迁移有所顾虑,一般来说,并不建议在 TiDB 或 MySQL 中使用存储过程,但是如果既存系统中已经大量使用且需要迁移,建议使用 TiDB 企业版(平凯数据库),它是支持存储过程的。或者,通过迁移工具将存储过程转化为应用代码,以此来降低迁移成本。

迁移到 TiDB 对业务发展与成本收益的影响

迁移到 TiDB 可以对业务发展产生积极影响。TiDB 改进的可扩展性和性能,可以帮助企业处理更大量的数据和更高级别的并发性,从而支持更多的用户和交易,帮助企业增加收入、扩展市场份额。例如,在春节期间出现的“小红书”热,TiDB 帮助其轻松应对流量高峰。

在成本方面,虽然 TiDB 基础设施的初始投资可能高于 MySQL,但从长远看,成本节省潜力巨大。TiDB 的分布式架构可以更有效地利用主机资源,TiDB 的资源管控特性 可以帮助用户充分利用 TiDB 集群资源,可将百套 MySQL 集群迁入一套 TiDB 集群,进而降低维护代价,节省成本。

MySQL 迁移到 TiDB 的工具

TiDB 生态提供了非常丰富的工具,以下是一些常用的数据迁移和管理工具:

TiDB Data Migration (DM)

这是一个由PingCAP开发的综合工具,专门用于从MySQL兼容数据库(如MySQL、MariaDB和Amazon Aurora)迁移和复制数据到TiDB。DM支持全量数据迁移和增量数据复制,能够处理MySQL binlog中的DDL和DML事件。它还提供了binlog事件过滤、表列表的允许和阻止、以及可定制的复制规则等功能。DM适用于各种部署环境,包括物理服务器和虚拟化环境,支持多种操作系统。

TiDB Lightning

用于将数据快速导入 TiDB 的工具,特别适用于大规模数据的导入。它支持从 Dumpling 导出的 SQL 文件或 CSV 文件中导入数据,并提供了高效的数据导入机制。TiDB Lightning 可以在导入过程中自动分割和合并数据,以提高导入速度。其优势在于能够处理大规模数据导入,适合数据迁移和初始化场景。

Dumpling

用于从 TiDB 导出数据的工具,支持将数据导出为 SQL 文件或 CSV 文件。它适用于需要将数据从 TiDB 迁移到其他数据库或进行数据分析的场景。Dumpling 提供了灵活的导出选项,可以根据需要选择导出的表和数据格式。它的优势在于简单易用,适合小规模数据的快速导出。

工具

场景

数据量

迁移类型

DM

小数据集,增量变更

小于 1 TB

全量+增量

Lighting

大数据量,全量快速迁移

大于 1 TB

全量

Dumpling

数据导出 SQL 或 CSV 格式

任何大小

导出(使用 Lighting 导入)

除了 TiDB 提供的工具之外,还有很多第三方工具,如 mydumper, apt-dts, DataX, OGG 等。

更多关于 MySQL 迁移 TiDB 的内容参阅:

  • https://docs.pingcap.com/zh/tidb/stable/migration-overview

  • https://asktug.com/t/topic/1000053

  • https://tidb.net/blog/231f2752

 

Have a nice day ~ 


🌻 往期精彩 ▼

-- / END / --

👉 这里可以找到我

  • 微信公众号: @少安事务所

  • ITPUB: @少安事务所

  • TiDB 专栏: @ShawnYan

  • PGFans:  @严少安

  • 墨天轮: @严少安

👉 这里有得聊

如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。 关注微信公众号:少安事务所,后台回复[群],即可看到入口。

如果这篇文章为你带来了灵感或启发,就请帮忙点『』or『在看』or『转发』吧,感谢!ღ( ´・ᴗ・` )~

 

本文分享自微信公众号 - 少安事务所(mysqloffice)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

原文链接:https://my.oschina.net/mysqloffice/blog/17698154
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章