在创作的小龙虾很乐观 level
获赞
26
粉丝
2
关注
4
看过 TA
55
哈尔滨学院
2027
游戏后端
IP属地:河北
暂未填写个人简介
私信
关注
我们一个活动模块要上线,需要存玩家临时数据。我选了MongoDB,理由很简单——不用建表、结构灵活、听说读写都快。选型的时候我还挺得意,觉得终于用上了“时髦”的技术。结果活动第三天,查询开始变慢了。一开始只是偶尔卡一下,后来越来越频繁。我盯着监控面板,看到那个爬坡的延迟曲线,手心开始冒汗。是数据量太大了?是我索引没建对?还是——MongoDB根本就不该用?那天晚上我躺床上,眼睛闭着,脑子却像跑满线程的服务器:要是当初用MySQL,现在会不会稳一点?MySQL我熟啊,至少知道怎么优化。或者用Redis?虽然要处理持久化,但至少快啊。要不明天一早上线把数据全迁了?翻来覆去到两点,甚至开始回忆选型那天:我当时是不是脑子一热?是不是被“大家都用NoSQL”带偏了?我一个小小的初级开发,凭什么自己拍板用MongoDB?要是活动崩了,玩家骂的是游戏,老板找的是我。第二天顶着黑眼圈到公司,第一件事就是查日志。结果发现,是我一个查询没加索引,全表扫描把数据库拖垮了。加完索引,性能立马恢复正常。问题不在MongoDB,在我自己,我一整晚的内心戏、一整晚的自我怀疑、一整晚的“如果当初”,全都白演了。同事说:“你这就是典型的选型后遗症。选A怕B更好,选了B又怕A更稳。其实大多数时候,技术本身没毛病,是你对自己没信心。”用自研框架,新同事上手慢,你就想:要是用开源的,人家可能自己就会了;用开源方案,遇到一个解决不了的bug,你就想:要是自己写,至少能控制每一行代码;用MySQL,担心扛不住QPS;用Redis,担心丢数据;用MongoDB,稍微慢一点就整晚失眠。内心戏太过丰富,全是各种想象。其实哪有完美的技术选型。每个选择都有代价,选了就得认。最累的不是做决定那一刻,而是决定之后,用放大镜盯着那个选择,生怕它出一点问题。做决定之前多调研,做决定之后少纠结。出了问题先查日志,别先查自己的心理阴影。毕竟,我的token还要留着写代码,不能全烧在那些“如果当初”的平行宇宙里。
把自己当AI,现在最消耗...
0 点赞 评论 收藏
分享
作为一个开发菜鸟,我第一次在组会上正式讲技术方案。我紧张得周五晚上都没睡好,脑子里反复过每一页内容。架构图画了又改,生怕箭头指错方向;技术选型那页,我特意把Redis、MySQL、MongoDB的对比列成表格,还从网上扒了几篇博客佐证;性能评估的数据,是我自己在测试环境跑了一下午压测跑出来的,虽然可能不太准,但至少有个参考。开会前我还偷偷在工位上默念了两遍:如果有人问缓存策略、数据一致性,我就翻ppt给他看。会议开始。我讲到第4页,正在解释为什么这次不用Redis——因为我们这个模块需要强持久化,玩家充值记录丢了赔不起。这时候,一位老同事举手了:“为什么不直接用Redis啊?Redis快啊。”我心想可能是我没讲清楚,赶紧补充:“因为这个数据要存盘,Redis是内存数据库,宕机会丢数据,风险有点大。”老同事点点头,我以为这页翻篇了。结果过了两分钟,他又开口了:“那你用MySQL不行吗?MySQL也能做缓存吧?”我脑子嗡一下。MySQL?缓存?我小声解释:“MySQL确实能存,但是QPS高了扛不住,我们预估峰值可能有几千的请求……”我偷偷瞄了一眼我的PPT第6页,上面确实有压测数据:MySQL到2000 QPS就开始慢了。老同事看了看屏幕,然后说了一句让我当场破防的话:“那我觉得还是Redis好。”那一刻,我感觉自己像一台卡死的服务器——CPU满了,内存爆了,但还得硬撑着保持在线状态。合着我刚才讲的,您一个字没听进去吗?我说了要持久化,说了QPS压力,说了数据一致性,您就记住一个“Redis快”?而且我已经解释了为什么不能用,您为什么还要坚持“觉得它好”?最消耗token的从来不是解释技术有多难。让我CPU过载的,是这种反复回答那些根本没认真听的问题——你准备了半天,把思路捋得清清楚楚,结果人家压根没在听,随口抛一个问题,你解释完,他再随口抛一个,最后回到原点。就像你费劲把一堆拼图拼好了,有人过来哗啦推散,问你:“这个拼图为什么不直接堆在盒子里?”会议结束后,我坐在工位上发了会儿呆。后来带我的大哥路过,拍拍我肩膀:“别往心里去,有些人开会就这样,习惯就好。”可能职场就是这样,别把心思放在那些不值得的人和事上。
把自己当AI,现在最消耗...
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务