DBA熬夜改表?这本MySQL手册让设计运维一步到位
|
去年三月份,我蹲在他们公司二楼小会议室,投影仪嗡嗡响得像台快散架的拖拉机——不是声音大,是那种持续低频震颤,震得人后槽牙发酸。客户老张坐我对面,左手转圆珠笔,右手手机屏幕朝下搁桌上,拇指在边框上反复摩挲。那盘切好的哈密瓜在会议桌正中间,果肉泛着淡黄,一动没动。 他开口第一句:“先做出来看看。” 我原以为他是怕预算超,结果他掏手机翻出一张截图,说“做个淘宝那样的”,底下加了句:“对,就首页那个轮播图,能点就行。”我说轮播图不算功能,是UI,他说:“不都一样?改个颜色还要加钱?” 销售王磊当时也在,笑呵呵递来一杯水,纸杯沿儿还印着半圈口红印——他刚送完客户进来的女助理。我接过来,没喝。水太凉,杯子外壁全是水珠,滴到我手背上,滑下去,没擦。 数据库结构当天下午才给——Excel表,字段名写的是“用户名”“收货地址”“商品ID(别名:goods_id)”,备注栏写着“后期可能要支持跨境”。DBA李工晚上十一点发微信问我:“这个‘可能’是指哪天可能?明天上午能定吗?”我没回。我知道定了也没用。果然第二天早会,老张说:“先上线,数据量不大,跑得动就行。” 跑得动。真跑得动。上线第三天凌晨两点半,李工微信语音打进来,背景音是键盘砸桌子的声音:“这表没有联合索引!没有主键!连唯一约束都没加!你告诉客户这是‘先做出来看看’的成果?!” 我挂了电话。回微信写了三遍又删掉。最后发过去一句:“在跟客户同步。” 老张回复更快:“急什么,不就是卡了嘛,重启下服务?” 我盯着这句话看了十七秒。电梯里遇见他们行政小妹,她拎着三袋热包子往茶水间走,见我抬眼,顺口问:“你们那个系统……上线啦?”我点头。她说:“哦,张总今早夸过,说‘像个样’。” DBA熬了两宿改表结构,第三天下午把alter语句发群里,附言:“加了主键、索引、外键约束、字符集统一成utf8mb4——但原有脏数据全得手动清理。谁来干?” 没人接。销售王磊发了个微笑表情包。我翻聊天记录往上找,发现两周前客户邮件里提过一嘴:“我们以前用过Access,导数据很方便。”我当时以为他在打比方。现在才懂,他是真想拿MySQL当Access使。 后来上线第七天,他们测试同事突然喊:“下单按钮点不动了!”排查半天,发现是前端传参里带了中文顿号,后端没过滤,SQL直接拼接进去——报错日志里清清楚楚写着“Unknown character in query”。可他们在验收单上勾的项是“下单功能可用”。我说:“您这验收标准,是靠目测还是靠点击三次不崩溃?”老张抬头看我一眼,手指还在转笔:“你们技术人,怎么总卡字眼?” 我原以为拖两个月能把尾款磨下来。结果尾款没结,合同附件第一页被他们扫描件盖了“作废”章寄回来——理由是“未按需求交付源码”。可合同正文第五条白纸黑字写着:“源码所有权归属乙方。”但他们行政把扫描件发给我时,还贴心配了句话:“张总说,做生意要讲情分。” 上周听说隔壁楼有个更绝的——客户让做一个“类似小红书”的App,预算三千块,开发周期三天。对方CTO现场演示原型,用PPT点了几下切换页,当场拍板。开发大哥回去建了个Vue项目,只写了登录页+四个tab空路由,连图标都是iconfont默认样式。上线那天,客户在群里发红包庆祝,还@我:“兄弟,抄你模板!” 我回了个OK,关了微信。转身看见李工在茶水间煮挂面,锅底焦了,腾起一股糊味。他捞起面甩水,忽然说:“你知道最离谱的是啥吗?上次我帮他们重写用户中心表结构,新加了login_failed_count字段和locked_until时间戳——结果运营第二天就来找我,问能不能把这个‘锁死时间’做成可编辑项,让客服手动解封。” 我点头。我说:“嗯,还能手动解锁失败次数。”
文章配图,仅供参考 他吹了吹面,没接话。水汽糊了眼镜片。 所以现在看到这本《MySQL手册》,封面印着“设计运维一步到位”,我冷笑一下——不是不信它有用,是它再厚也治不了“先做出来看看”这个病灶。优胜劣汰不是口号,是李工凌晨三点改完DDL合上笔记本时眼睛里的红血丝,是你看见客户转笔动作突然停住、然后慢悠悠说“那这样吧,我们自己招个DBA试试”的那一瞬。 这书值不值?当然值。但它救不了跪着写SQL的人。客户不改需求习惯,你再熟MySQL文档,写的也是通向生产事故的说明书。 下回合同里这条必须写死:“数据库设计方案须经乙方DBA签字确认后方可启动开发;任何字段新增、类型变更、索引调整,均视为重大需求变更,需另行签署补充协议。” 写完我就删了草稿——客户不会签。他们连“支付宝到账三千元”的支付凭证都要求开票后三天内提供PDF原图,却觉得一个字段要不要NOT NULL可以等上线再聊。 会议室投影还在嗡嗡响。我起身时碰倒了那盘哈密瓜,一块掉地上,滚到老张椅子腿旁边,没人捡。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


MySQL运维设计实战:36小时稳如磐石
MySQL高可用架构:20年前端老兵的运维实战
SQL Server数据库设计避坑12实战关键点
MySQL性能优化实战:15年经验的全链路提速之道
MySQL事务控制无障碍设计实战指南