2团
Published on 2026-01-06 / 3 Visits
0
0

谁能拒绝免费的TiDB Cloud存储套餐:MySQL数据库迁移尝试

1.前言

前段时间Halo博客升级到2.22.X版本之后,很不稳定,CPU经常干到100%。当前Halo是和MySQL数据库部署在一起的,此外,还部署有若干应用(Golang、Java)均有,资源比较吃紧。
虽然还有个云主机(阿里云99元套餐,2C2G),但是跑着一个业务MySQL。
思前想后,决定将当前两个主机上的MySQL实例干掉,考虑使用云MySQL来减轻主机的性能开销。刚开始考虑阿里云的MySQL,准备评估下按量付费,但是此时想到了白月光TiDB,于是去其官网扒拉下,如果便宜的话倒是可以考虑。
结果发现TiDB有免费套餐。

2.什么是TiDB

TiDB是分布式关系型数据库,高度强兼容MySQL协议和MySQL生态,稳定适配MySQL 5.7和MySQL 8.0常用的功能及语法。随着版本的迭代,TiDB 在弹性扩展、分布式事务、强一致性基础上进一步针对稳定性、性能、易用性等方面进行优化和增强。与传统的单机数据库相比,TiDB具有以下优势:

  • 分布式架构,拥有良好的扩展性,支持对业务透明灵活弹性的扩缩容能力,无需分片键设计以及开发运维。

  • HTAP 架构支撑,支持在处理高并发事务操作的同时,对实时数据进行复杂分析,天然具备事务与分析物理隔离能力。

  • 支持SQL完整生态,对外暴露MySQL的网络协议,强兼容MySQL的语法/语义,在大多数场景下可以直接替换MySQL。

  • 默认支持自愈高可用,在少数副本失效的情况下,数据库本身能够自动进行数据修复和故障转移,对业务无感。

  • 支持ACID事务,对于一些有强一致需求的场景友好,满足RR以及RC隔离级别,可以在通用开发框架完成业务开发迭代。

2.1 免费套餐

TiDB有以下几种套餐:

  • TiDB Cloud Starter;

  • TiDB Cloud Essential;

  • TiDB Cloud Dedicated。

对于个人用户(博客、小应用等),建议考虑TiDB Cloud Starter;对于小型公司,则是可以考虑TiDB Cloud Essential,按量付费;对于大型企业来说,就可以考虑TiDB Cloud Dedicated,定制专门的部署集群。

这里引用官网对TiDB Cloud Starter的介绍:

TiDB Cloud Starter是一款全托管的多租户TiDB服务。它提供了一个即开即用、自动弹性扩展、兼容MySQL的数据库,并在超出免费额度后按用量计费。
免费集群方案非常适合刚开始使用TiDB Cloud Starter的用户。它为开发者和小型团队提供以下基础功能:

  • 免费:该方案完全免费,无需信用卡即可开始使用。

  • 存储:提供初始 5 GiB 的行存储和 5 GiB 的列存储。

  • Request Units:包含5000万*Request Units (RUs)*用于数据库操作。

可能这里会存在疑问,即仅% GiB的存储空间,不适合我使用,但是这里需要注意:对于TiDB Cloud中的每个组织,默认最多可以创建5个免费的TiDB Cloud Starter集群。换言之,就是个人可以总共拥有25 GiB存储空间。

对于超过这个数据量的用户,你得考虑TiDB Cloud Essential了。
我现在是将图片等资源存储于OSS等,因此MySQL中存储的业务数据倒是不多。

2.2 创建步骤

TiDB官网地址:https://tidbcloud.com/,首先需要去官网注册账号,我这里选择的是通过Email进行注册,还有Github、Google等三方认证登录方式。登录之后按照网站的交互指导一步步next,直至创建成功第一个TiDB Cloud Starter集群。

yfFDvLiecZRjRcQlOREOjAQAErMeocLR.png

数据导入方面较为麻烦,有三种数据导入方式,

  • 上传本地文件(仅限CSV);

  • 通过云上文件导入(支持CSV、Parquet以及SQL文件);

  • 通过MySQL Cli导入。

我这边选择了最诡异的方式,即通过SQL Editor导入,详见下图:

VShtnJcFGjSAVUUAVdJnUGmJzKDFwrbJ.png

使用SQL Editor原因是,已经提前准备好了数据文件,且没有浏览完功能就执行操作了;还好,multi insert的执行速度还是蛮快的。

3.使用初步体验

因为集群部署在新加坡节点,所以SQL执行操作的时延略有升高,不过由于Halo有缓存机制,因此博客仅在开始时有些影响;此外,Halo的数据查询机制较为简单,并未使用到较为复杂的SQL语法,因此浏览博客网站并未发现到明显问题,现有的插件问题,也是因为。。。Halo的版本翻车了。
此外,对于个人应用来说,也并未使用到复杂的语法(或者个人应用,就不想写复杂的SQL),因此迁移数据库之后并未发现功能问题。

待后续有空的时候,还是需要比对下TiDB和MySQL的语法差异,以及一些默认行为的差异(例如Auto Incrment设置等)。

以下是当前的数据库监控图(还有诸如慢SQL日志等):

TOVgKInsXkMNXhqYKXSvIyWEXMpEATRy.png

总而言之,这次上车体验还是比较舒服的。


Comment