-
我给表建了 a、b、c 的联合索引,以为查这三列里哪一个都能走索引,结果按 b 单独查时全表扫描慢成狗,我对着最左前缀排查了大半天的复盘
我给一张大表建了 (a,b,c) 的联合索引,想当然以为查 a、查 b、查 c 都能用上它,结果上线后按 b 单独过滤的查询慢得要命,EXPLAIN 一看 type=ALL、key=NULL,索引完全没生效、走的全表扫描。我对着这个"明明建了索引却用不上"的现象排查了大半天,才彻底搞懂联合索引的最左前缀原则:(a,b,c) 这个索引,是先按 a 排序、a 相同再按 b、b 相同…- 2
- 0
-
MySQL 索引优化实战:看懂 EXPLAIN,慢查询从 3 秒到 30 毫秒
一张订单表数据涨到两千万行后,一个按用户查最近订单的普通查询突然慢到三秒多,我第一反应是加索引,结果还是慢一秒多。那天我用 EXPLAIN 把它摊开,顺着 B+ 树、聚簇索引与二级索引的回表、覆盖索引、联合索引的最左前缀一路啃下来,最后靠建对一个索引把查询压到三十毫秒。从读懂 EXPLAIN 的 type/key/rows/Extra,到回表与覆盖索引、最左前缀、索引失效的函数与隐式转换与 LIK…- 0
- 0
-
从 MySQL 5.7 单实例 + 裸查询 + 全表扫描 + 应用层 N+1 + 无分区 + 无连接池 + 慢查询全靠猜 远古数据层 → 2026 PostgreSQL 17 声明式分区 + 覆盖/部分/GIN 索引 + 逻辑复制读写分离 + PgBouncer + 窗口函数/CTE + JSONB + 物化视图 + pg_stat_statements 现代数据体系 79 天战役复盘:47 套调优修法 + 7 个 P0 复盘 + 6 条工程哲学
17 位数据平台工程师 79 天把一套跑了八年、单库逼近 4.7 亿行的 MySQL 5.7 单实例远古数据层,零中断重构到 2026 年 PostgreSQL 17 现代数据体系:声明式分区裁剪 + 覆盖/部分/GIN/表达式索引 + 逻辑复制读写分离 + PgBouncer 事务级池化 + 窗口函数/CTE 消灭 N+1 + JSONB + 物化视图 + pg_stat_statements …- 3
- 0
-
PostgreSQL 索引设计完全指南:从一次"加索引锁表 4 分钟业务停摆"看懂为什么 CREATE INDEX 远远不够
2023 年我们做一个 SaaS 数据分析平台后端用 PostgreSQL 14 主库一台 32C 128G 加两台只读从库业务初期 100 万订单 1000 万事件一切都很流畅查询都在 50ms 内半年后数据涨到 1 亿订单 8 亿事件我们陆续踩了一堆坑第一种最让我傻眼一个看似普通的 ORDER BY created_at DESC LIMIT 10 查询没建索引前 5 秒加了 b-tree 索…- 5
- 0
-
MySQL 索引失效完全指南:从一次 8 秒慢查询看懂索引为什么没走
2022 年我维护一个订单查询系统,orders 表几百万行。某天 DBA 告警:一个按日期查订单的接口慢到 8 秒,数据库 CPU 被一条 SQL 打满。我清楚记得 created_at 列上建了索引,可 EXPLAIN 一看 type=ALL、key=NULL——索引根本没走,几百万行从头扫到尾。罪魁是 WHERE DATE(created_at)= 这种写法:对一个建了索引的列套了 DATE…- 2
- 0
-
加了索引还是慢:一次 MySQL 索引失效排查的复盘
DBA 说"加个索引就行",索引加上了,订单查询接口却纹丝不动,P99 还是 3-5 秒。用 EXPLAIN 逐条分析才发现 SQL 里藏着一堆让索引"悄悄失效"的写法。几天索引专项治理:读懂 EXPLAIN 执行计划、修正函数/隐式转换/前导模糊等失效写法、联合索引最左前缀、回表与覆盖索引、索引设计原则、慢查询监控。- 2
- 0
-
MySQL 慢查询拖垮数据库:从一条 31 秒 SQL 说起的索引优化实录
运营活动期间订单查询接口 P99 从 200ms 飙到 8s,数据库 CPU 打满,最慢一条 SQL 跑了 31 秒。一周索引专项治理:慢日志 + pt-query-digest 定位、EXPLAIN 读执行计划、联合索引最左前缀、覆盖索引免回表、修索引失效的 SQL 写法、深分页改游标分页。同接口 P99 稳定 60ms。- 0
- 0
-
SQL 索引优化实战:为什么你的查询慢,以及怎么修
"这条 SQL 怎么这么慢?"—— 几乎每个后端工程师都问过这句话。答案十有八九和索引有关:要么没建索引,要么建了用不上,要么建多了拖慢写入。这篇文章不堆理论,而是沿着"索引为什么快 → 为什么用不上 → 怎么诊断 → 怎么建对"这条线走一遍,所有结论都配可复现的 SQL。 索引为什么快:B+ 树的直觉 没有索引时,数据库找一行数据只能做全表扫描:从第一行翻…- 4
- 0
索引优化
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!








