作者: ealam_小羽


初识

2020 年 2 月 29 日,虽然由于疫情在家办公,但小周还是小周。

不过我们的小周一般都是活动日、分享日。

这天,同事分享了个新名词——TiDB,说可以去 B 站关注一下 TiDB_Robot,他们今天在直播。

看完直播的我,除了被 NewSQL,分布式数据库、无需关注分库分表的特性吸引外,还对另外一件即将开始的事感到有些惊讶,3 月 7 号,挑战 48 小时内完成开源电子书《TiDB in Action》。

为什么 TiDB 的社区凝聚力这么强?TiDB 真的能解决这些问题吗?

一个个问题埋在了心底,终有一天,它们会破土而出。

其实我也记不清什么时候开始知道 TiDB ,当时关注了 TiDB_Robot,搜了下关注时间。

2020-02-29 10:57:12,这就是故事的开始!


相遇

2020 年 3 月 ~ 2021 年 9 月,一直在 MySQL 和 Mongo 之路狂奔,也就偶尔会从 B 站动态中:一堆美食区 UP 里冒出 TiDB 的身影。

2021 年 10 月,一个新的转折点,转战新的业务线,开始讨论数据中台的搭建方案。

虽然以前接触的数据量压根达不到 TiDB 的使用场景,甚至连分库分表都在犹犹豫豫(加点资源,就不用搞那么多了,也就百万级别数据),但一直对 TiDB 的各种特性心心念念。

于是,很快提出了为什么要使用 Mongo?数据明显更适合关系型数据库,要不要考虑可以支持海量数据的 TiDB?

没想到,新部门的小伙伴,从开发到运维都对 TiDB 有一定了解,一拍即合,选型确定!

选型评估、资源申请、线上部署,一路顺畅!

2020 年 12 月,使用 TiDB 的第一个业务上线,表现良好,开发过程中也没感觉的与 MySQL 有任何差异,几乎完美兼容!



相知



加入社区

2022 年 1 月 1 日,加入 TiDB 社区。

不过说点实话,很长的一段时间,我基本忽视了社区的价值,毕竟作为一个 CURD Boy,文档本身这么齐全,又兼容 MySQL 协议,用就得了,其他的不可以找运维!

人类,终究会为自己的无知付出代价!


遇到问题

2022 年 4 月末,CURD Boy 的开发工作完成,测试验证时发现:

咦,这个查询怎么这么慢,表 A、表 B 我加了索引,但为什么没关联?

表 A,你怎么和表 C 勾搭上了,你俩不是最佳搭档啊,你的最爱应该是表 B 啊!

MySQL 验证了一把,A 终于关联了 B,于是问题锁定:TiDB,肯定是因为你!

翻了半天文档,终于找到了答案,Join Record 算法!

Join Record 算法,会将关联表中数据量最小的表 C 拎出来,分别和表 A 和 表 B 配对,看和谁的效果好,压根不会有表 A 和 表 B 配对的情况!

当然,贴心的 TiDB 也早提供了答案,STRAIGHT_JOIN!

感兴趣的小伙伴,可以看下官方文档:​​https://docs.pingcap.com/zh/tidb/stable/join-reorder​

也就是这一天,我终于理解了这句话:命运馈赠的礼物,早在暗中标注了价格。

不学好 TiDB 的架构、设计,各模块特性,怎么能用好 TiDB 呢?

重头迈上征程,《TiDB in Action》、301、302、TiDB 社区,我来了!

找到组织

匆匆忙登上 TiDB 社区,不知道在哪翻到了一个交流群贴,加上了 表妹,表妹把我拉近了一个 TiDB 社区互助群,看到了群公告:

进群请改昵称: 社区昵称-城市-公司(公司不方便列出来的可以不列) ✍️本群是 TiDB 技术交流群,有问题先去:asktug.com 发帖,发帖如果没有人回复可以把链接放到群里面来求助。 发问之前可先搜索:​​https://search.asktug.com/​​​ (大部分问题都可以在此找到答案) 问题搜索指南&提问准则:​​https://asktug.com/t/topic/93912​​ ☑️技术交流正常需要 case by case 讨论,所以尽可能的先上链接,再沟通,把问题的背景和复现路径都写清楚是对“他人”的一种尊重,也是可以让问题更好地被定位到,提高问题解决得时效。

TiDB 社区交流群是一群使用 TiDB 的社区小伙伴互相交流,我们秉承自由、平等、开放,拒绝白嫖和你就应该为我服务的思想。

不知怎么,看到这篇公告,不由得热泪盈眶,有一种终于找到组织的感觉。

之前遇到问题,默默一个人周六翻了一天文档,身边问了一堆不知道,这下,突然有了继续使用 TiDB,踏平各种阻碍的底气!

从此之后,惊喜连篇!

内测 201

作为一个 CURD Boy,看着社区里某某公司 运维/DBA 大佬的发言,课程认证中数据库专员、数据库专家的名头,初来贵地,还是有那么一点点格格不入的想法。

然而,很快这么一点点格格不入就被驱散了。

首先是看了 TiDB 的一些入门课程,会发现完全可以把 TiDB 当作一个分布式应用来理解,而且介绍了很多技术选型方法、分布式应用架构理念,应用开发也会受益匪浅!

其次就是,包老师开启了新课程《201系列-面向应用开发》,应用开发也有了一席之地,应用开发专家认证也即将开启!

申请了 201 的内测,小伙伴们太卷了,在周末才勉强赶上了进度。

而包老师比我们更卷,周日搞到周一凌晨四点,5 月 16 日发布了内测的最后一个课程。

当时正在听公开课的我,收到班长小木发的 201.4 的更新推送,瞟了一眼,201.4 才 127 分钟。

激动的心,颤抖的手,终于能卷一卷内测的小伙伴,争一争原来早已放弃的前十,看看能不能混进小群,窥屏一下很少能接触到的 DBA 大佬(小部门,上班以来没见过真 DBA)。

2022 年 5 月 16 日 21 点 17 分,201 系列课程拿下!前十锁定!


展望

现在还觉得恍恍惚惚,在 TiDB 社区突然体验到类似心想事成的感觉。

没人交流,发现了社区交流群。

通过社区交流群,发现了 201 系列内测,有了见产研大佬的机会。

内测的小伙伴真肝,但最后一节课刚好有空,偷偷后发制人!

一番顺风顺水过后,包老师让我看到了现实,PCSD 考试内测把我打回原形!

你还嫩着呢,就算是从应用开发来讲,你还有很多没了解呢!

老老实实收下心,定下来之后的目标:

5 月份,301 系列刷完后,6 月份,继续 PCTA 试试水,是骡子是马,总得拉出来溜溜!

下半年,抽空把 302 系列完成,没事多上上社区,刷刷贴!

有机会来把 PCTP,过不过的无所谓,总得考验考验自己,查漏补缺。

当然,CURD Boy 的基本功也不能落下,从这次 TiDB 的学习之路,慢慢找回了当年学习的感觉,保持下去吧!

以此记录一下与 TiDB 的这些故事,也偷偷给自己立下了一些 Flag!

希望明年或第 N 届征文大赛,能在更新一把这些故事,看一看当年的 Flag ,它还好吗?