DBA最容易掉进的陷阱
上次和一个DBA聊天,他说自己很爱学习。
书架上摆满了《高性能MySQL》《数据库优化艺术》,网盘里存着好几个T的培训视频,每年的技术大会门票都买。
看起来很努力。
但他说了一句话:"为什么我懂那么多优化技巧,遇到问题时还是慌?"
今天,我想聊聊这个。
打破旧认知
很多DBA以为自己技术强。 看文档、考认证、刷视频、技术博客、公众号文章、GitHub star…… 看起来很专业。 但事故还是发生。 主库挂了,切换花了10分钟。 慢SQL来了,还是查半天定位不了。 新架构上线,心里没底。 这说明一个问题:你只是在囤知识,不是在训练认知。
建立新认知
知识像产品手册。 认知像故障演练。 手册背一百遍,第一次故障现场你还是手抖。 只有你真的上过现场,经历过几次生死时刻,手知道怎么敲,脑知道怎么判断,你才算会了。所以"懂原理"只是闭环的一半。 另一半是:把它用出来,拿到一个真实结果。很多人卡在这里。 觉得自己懂了高可用,但主库挂的时候还是慌。 觉得自己懂了索引优化,但线上慢查询还是排查半天。 知道和做到之间,隔着一万个"上过现场"。
为什么"看过"和"会做"之间有这么大的鸿沟?
不是因为你不聪明。 不是因为你记忆力差。 而是因为: 认知的本质不是存储,是调用。 你看过100篇讲MGR的文章,不代表你会搭建MGR集群。 你读过10本讲分库分表的书,不代表你会设计分片方案。 你听过100个技术分享,不代表你会排查复杂故障。知识存进脑子,那叫信息。 知识变成肌肉记忆,那叫认知。很多DBA以为学习就是输入。 看文档、听分享、刷视频,一直在输入。 但真正的学习, 80%是在输出。 用故障倒逼理论,用实战检验认知。
不是你学得不够多,是你练得不够狠。
什么才是真正的"练认知"?
很多DBA觉得,"我学了那么多技术,总得有点积累"。 但积累有两种。 一种是囤积型积累。 浏览器收藏夹里存着几千篇技术文章,笔记软件里躺着从来没再打开过的学习笔记,网盘里放着从来没用过的培训视频。 这种积累,看起来很充实, 其实是认知的仓库,不是认知的演练场。仓库只进不出,迟早会爆仓。另一种是实战型积累。 每次学到一点技术,马上找机会用起来。 搭建一套环境,处理一个故障,优化一个SQL,做一次分享。 这种积累,看起来很慢,但每一个技术点都经过了真实场景的检验。
演练场持续产出,才是真正的认知。 真正的学习,不是往脑子里装东西,而是把脑子里的东西拿出来用。
DBA该如何把知识练成认知?
别只问"懂了吗",要问"做过吗"
不是让你拒绝学习新技术。 而是让你学到之后,立刻找机会实战。- 学到MGR原理,今天就搭一套测试集群
- 学到索引优化,今天就找一个线上慢SQL实战优化
- 学到故障排查,今天就复盘一个历史事故,写出完整的根因分析
别当知识的收藏家,要当知识的实战者。
别追求完美,要追求完成
很多DBA不敢动手,是因为觉得"我还没完全搞懂"。 原理再熟,不上手还是不会。 就像学开车,你在驾校把理论背得再熟,第一次上路还是会紧张。真正的准备,是在路上跑过几万公里。别等"完全准备好了"再开始,永远不会有那一天。 今天能做30%,就先做这30%。
别囤积,要输出
不是让你扔掉所有的学习资料。 而是让你定期盘点:哪些技术我真的用起来了?哪些只是看着爽?哪些已经过时了?定期清理技术库存,才能腾出空间装新的东西。更好的办法是:写出来,讲出去。
- 每次学到一个技术点,写一篇实战文章
- 每次解决一个复杂问题,做一次技术分享
教别人,是检验自己是否真懂的最好方式。
认知升级的真正速度是什么?
很多DBA以为认知升级是线性的。 今天学一点,明天学一点,慢慢积累。 但真正的认知升级,是指数级的。 当你把一个技术真正用起来,拿到结果,它会带动你理解更多技术。认知不是拼图,是一棵会生长的树。 你种下一颗种子,它会自己生长,会分叉,会变成一片森林。 但前提是,你得先把种子种下去。
最后想说的话
上次有人说,这样学太慢了。 我想说: 慢不是坏事。 慢说明你在真正地上手,在真正地犯错,在真正地成长。 比慢更可怕的,是伪学习。 伪学习的DBA,等到线上故障、架构升级、面试跳槽的那一天,才会发现:原来自己收藏了那么多干货,却连一个真实故障都处理不好。真正的认知升级,从来不是靠囤技术堆出来的。 是每次学到一点,立刻实战;每次实战一次,立刻复盘输出。
早一点意识到这一点的人,总是能走得从容一些。你还来得及。 不是明天,是今天。
现在就开始,把你收藏的一个技术点,实战起来。如果你也在经历这个阶段,有什么想说的? 欢迎在评论区聊聊。