我跟你说,现在搞数据库运维的人,最怕听到的词儿就是“题库”。为啥呢?因为你想想,数据库这玩意儿,平时管得好好的,突然来一次考试,考的不是日常的调优、备份、故障处理,而是冷冰冰的命令参数、死记硬背的存储引擎区别、以及各种版本之间的语法差异。这就像你开了十年车,突然让你考交规里的“灯光使用细则”,你说憋屈不憋屈?但没办法,不管是公司内部评级,还是拿 OCP、DBA 认证,题库都是绕不过的坎儿。

我认识一个朋友,在电商公司做了五年 MySQL 运维,平时处理过几十亿的数据,线上问题解决得比谁都快。结果去年公司架构调整,要求全员考中级 DBA 证书,他拿到题库一看,傻眼了。像“MySQL 的 InnoDB 和 MyISAM 各自适用于什么场景”这种平时根本不用想的问题,题库里能出三四种问法。还有“请写出以下 SQL 语句的执行顺序”,他平时写 SQL 全靠直觉,一考细节就懵了。他硬是刷了一个月的题,考完后跟我说:“我这一个月刷的题,比我五年实战还累。”这反映了题库的一个大问题:太脱离实际。
很多题库的编写者可能自己根本没做过一天运维。他们从官方文档里扒拉出一堆参数,拼成选择题、填空题、简答题。比如“请说出 MySQL 的 redo log 和 undo log 的区别”,这问题本身没错,但题库里会给你八个选项,让你挑哪个是“保证事务持久性”的,哪个是“保证事务原子性”的。你日常运维中会这么纠结吗?不会的。你只会知道 redo log 写进磁盘,undo log 用来回滚。但考试不这么考,它偏要你抠字眼,抠名词的准确定义。于是很多运维人员为了考试而考试,考完就忘,回头还得重新学实战。
更坑的是,有些题库特别喜欢考过时的版本。比如某家公司内部的题库,还把说明书当成操作指南,根本不符合当前技术。题库的更新速度,完全跟不上技术迭代的速度。
当然,我也不是说题库毫无价值。好的题库可以帮你梳理知识体系。比如,如果你把“索引优化”相关的题目吃透,从 B+ 树结构到聚簇索引、覆盖索引、索引下推这些概念都弄明白了,实际工作中遇到慢查询就能快速定位问题。问题是,大部分题库只给题目和答案,没有解释“为什么”。你刷了一百道索引题,可能还是不知道为什么联合索引的最左前缀原则会导致全表扫描。这种“知其然不知其所以然”的刷题,本质上就是在浪费时间。
我见过最聪明的一种做法,是一个做 PostgreSQL 运维的哥们儿。他从不直接刷题库,而是把题库当成“需求文档”。什么意思呢?每看到一道题,他就去翻官方文档,把相关参数、函数、原理全部查一遍,然后自己写个 Demo 运行一下。比如题库里考“如何查看当前数据库的死锁信息”,他不光记住了命令,还自己造了死锁场景,查看日志、分析锁等待、模拟解锁流程。这样一来,这道题可能只花十分钟,但背后的知识他彻底掌握了。后来他考 PG 认证一次通过,考完直接成了部门的数据库负责人。
还有一个现实问题:很多公司的题库是外包团队出的,或者是从网上扒的,质量参差不齐。刷着刷着,你会发现一道题的答案和官方文档矛盾。比如某题说“MySQL 的默认隔离级别是 READ COMMITTED”,但官方文档明确写着“REPEATABLE READ”。如果信了题库,考试时选错答案就冤枉了。更离谱的是,有些题库里还有“多选题选一个正确答案”这种低级错误。所以刷题前,最好先自行核对题库的准确性,别用自己的分数去赌。
说到底,数据库运维考试题库的意义不该是让你变成“背诵机器人”。它应该是你知识体系的一块试金石。你如果能把题库里的题目变成日常工作中的“排查手册”,那就是好题库。比如刷完一道“如何排查数据库连接数过高”的题,下次线上真的出现连接数爆满,你能马上想到查哪些视图、用哪些命令、怎么限流,那这个题库就值了。反之,如果只记住了一个“show processlist”的命令,换个场景仍然抓瞎,那就没有太大帮助。
我的经验是,如果你准备考试,别急着刷题。先拿一本权威的官方文档或经典的数据库书籍,把核心概念过一遍。比如《高性能 MySQL》或《PostgreSQL 实战》这种。然后再看题库,把它当成练习题,而不是学习资料。每道题做完,都问自己三个问题:这个知识点我在哪里见过?如果线上遇到,我怎么处理?这个答案有没有别的解释?这样刷一遍,效率比单纯刷题高十倍。
我想说,数据库运维这个职业拼的不是记忆力,而是处理问题的能力和对系统的深度理解。题库只是工具,不是目的。别让题库绑架你的学习路径,更别为了考试而考试。真正值钱的是你实战中积累的那些“坑”和“解”,而不是背下来的参数名。所以,下次看到题库时,别慌,把它当成查漏补缺的清单,而不是必须征服的敌人。你越从容地使用它,它就越能帮你成长;如果被它牵着鼻子走,你就永远只是个“会做题的运维”,而不是一个“能解决问题的工程师”。


