同一句 SQL,周二跑 50 毫秒,周三跑 5 秒。SQL 我一行没改,表结构没动,数据量也没涨多少。我第一反应是有人偷偷改了数据。翻完两天的变更单和发布记录,...
上个月运营同学给我发了张截图。她想找最早的一批订单,在订单列表上点了「末页」,页面转了二十多秒才出来。她问我是不是数据库坏了。我第一反应是索引没建对。打开表结构...
上周三凌晨,一个订单查询接口的 P99 从 40 毫秒掉到了 3 秒。告警响的时候我正在改另一篇稿子。我把慢日志里那条 SQL 抄出来,翻来覆去看了一个小时。有...
但上周一个朋友发来一条JOIN查询,两张表:orders表200万行,users表50万行。他说:“users表小,应该是驱动表吧?为什么EXPLAIN显示or...
GPL-2.0 开源 · 源码 + 预编译双通道交付 GitHub: https://github.com/gjb711 · GitCode 同步: https...
周一刚坐下,开发小哥就甩来一条慢查询:“这表索引都建了,怎么还这么慢?”我看了眼他发来的SQL,第一反应也是老毛病:加索引。话到嘴边又咽了回去。就是加索引这个习...
上周讲了“大事务导致从库延迟怎么查”,评论区有人问:“道理我都懂,但怎么在它发生之前就拦住?”
多租户系统最容易被低估的问题,不是“怎么把数据存下来”,而是“数据隔离的边界在哪”。代购/集运这类业务里,租户之间天然存在支付、物流、汇率上的差异,一个租户的数...
单表数据过了千万级,查询开始变慢。你说"该分库分表了"。老板问你能搞定吗,你说能。然后花了一个月搞完,上线后发现——跨分片查询慢得要命,有些查询根本没法写。
每次系统变慢,第一反应就是“去看看慢查询日志”。找到那条慢SQL,分析执行计划,加索引或改写法,问题解决。这是慢查询日志的标准用法——找慢SQL、修慢SQL。
有个经典的"凌晨惊魂"场景:某条核心SQL跑了半年都没问题,每天几十万次执行,响应时间稳定在5毫秒以内。某天凌晨三点,监控告警疯狂弹窗——这条SQL突然飙到5秒...
上周讲了参数调优——哪些参数值得调、怎么调。但有一个前置问题没解决:你怎么知道该调哪个参数?
领导让我对比三款国产数据库的内核架构,给公司订单管理系统定方案。我本来只打算跑个基准测试交差。后来发现,内核架构的差异比跑分数据重要得多。
上个月我干过一件蠢事。生产环境一张六百万行的订单表,测试时我在status字段加了索引,上线前跑测试查询从8秒降到0.03秒。我信心满满提交了变更,第二天慢查询...
很多DBA的两种极端状态:要么“默认参数跑天下”,连max_connections都没改过;要么“看到参数就想调”,在网上搜了一堆“优化清单”直接照搬,结果往往...
你有没有过这种经历:花了一下午把一条跑30秒的SQL优化到0.5秒,成就感满满,结果业务方说“没感觉啊”。而你隔壁同事随手优化了一条0.3秒的SQL,业务方反而...
翻过很多文档,也踩过很多坑。做 DBA 这些年,凌晨被叫醒的次数里,有三分之一跟连接池有关。
前面我们讲了Extra列里的8个性能信号——Using temporary、Using filesort、Using index condition……把这些“...
最近在帮公司做数据库巡检,发现一个有意思的现象:很多慢SQL问题其实都踩在同样的坑里。有的UPDATE语句能跑5分钟,有的报表查询扫了几千万行数据,还有的统计S...