MySQL执行计划选错的三个原因+五类常用Hint
大家好,我是小耶,写功课只是为了我踩过的坑,你们别再踩了!有没有遇到过这种情况:一条SQL跑了半年都好好的,突然某天开始变慢了。SQL没改,索引没动,数据量也没暴涨,但执行计划从索引扫描变成了全表扫描。你更新了统计信息,重建了索引,重启了数据库——执行计划还是那个错的。
对账少了几十单,查到最后是分页SQL排错了
大家好,我是数据库小学妹 我踩过的坑,你别再踩。上个月同一周来了两个投诉。运营说订单列表翻到第三页,看到了第一页的订单。财务说月度导出少了几十单,金额对不上。一个多,一个少,看着是两件事。
MySQL实践系列29:手把手教你调优Order By/Filesort让性能起飞
本文是《MySQL实践系列》的 29讲。大家好,在前面的文章中,我分享了索引、列锁、索引基数等知识点,相信你读后会有收获。今天来分享一个几乎所有后端童鞋都可能踩过的坑,ORDER BY 排序慢的问题。
报表平台最上游那截数据采集,其实可以不用写代码搭
你团队是不是也在这种状态里做数据?做报表、做 BI、做数据平台的人都知道一个事实:报表的源头是数据,数据的源头是录入。业务端一张表单录进去什么,后面整个数仓、报表、看板就要跟着处理什么。
为什么深分页越翻越慢?LIMIT 100000 背后发生了什么
你写的只是一句普通的 LIMIT 100000, 20,要的也就 20 行数据,可接口一到第几百页就开始卡,翻到第几万页直接超时。问题不在 LIMIT,而在那个巨大的 OFFSET 。一、LIMIT 100000, 20 并不是"跳到第 100000 行"这是最大的认知误区。
单表到两千万行,分区、冷热分离、分表到底选哪个
前阵子见过一个设备巡检的库,工单表跑了三年,2200 万行。列表页原来两百毫秒,后来点一次要等七八秒,客户催着问是不是该分表了。我先让运维把慢查询日志打开,三天下来排第一的那条 SQL 只查最近一个月、按状态过滤,执行计划里 type 是 ALL,status 上根本没有索引。
Agent记忆系统的设计实践:一张表、一个索引、三套淘汰策略
从会话上下文的简单拼接,到跨会话的长期记忆,再到可被检索的语义知识,一个Agent能记住什么、记住多久、在该忘的时候敢不敢忘,决定了它是玩具还是工具。
这条 SQL 慢 40 倍,问题不在索引
01 先说现象一条查询,昨天 200 毫秒,今天 8 秒。第一反应都是加索引。CREATE INDEX 敲下去,再跑,还是 8 秒。因为大部分慢 SQL,索引早就建了。问题在于它没被用上,或者慢的根本不是索引。下面这几类,在 Java 和 Spring 项目里几乎每次都能碰到。
凌晨两点 CPU 打满,凶手是一条没走索引的 SQL
凌晨两点 CPU 打满,凶手是一条没走索引的 SQL全表扫描与索引查找的执行路径对比凌晨两点零七分,值班群连响六条告警:订单库 CPU 98%,接口 TP99 从 120ms 涨到 4.3 秒。我第一反应是流量突增,可看了一眼 QPS——和昨天同一时段一模一样。