01 · DATA MODELINGP013 MIN
Index 与查询计划
从真实查询模式选择索引,并理解索引为什么也有成本。
MENTAL MODELINDEXING
01慢查询
→02EXPLAIN
→03匹配访问模式
→04加索引并复测
先把概念与边界说清楚
定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。
Index
额外的数据结构,用空间和写入成本换取查找、连接或排序速度。
Composite Index
按多列顺序组织,适合常见组合过滤;列顺序受等值、范围和排序影响。
EXPLAIN
展示数据库计划如何扫描、连接与估算行数;EXPLAIN ANALYZE 还会真实执行。
订单列表为何越用越慢
每个租户都按状态和创建时间翻订单,数据增长后开始全表扫描。
- 01
记录 SQL 与执行计划。
- 02
建立 (tenant_id, status, created_at DESC) 组合索引。
- 03
复测 p95 并观察写入开销。
列表读取从秒级回到几十毫秒,且索引与权限过滤前缀一致。
马上动手
- 为“租户内按客户和时间查订单”排列组合索引。
- 比较低选择性布尔列单独建索引的价值。
常见坑
- 凭感觉加索引不看计划
- 忽略租户字段作为前缀
- 只测空数据库
05 · KNOWLEDGE CHECK索引越多为什么不一定越好?查看答案⌄
答案
索引占空间、影响缓存,并在插入更新删除时同步维护;优化应服务具体访问模式并用计划与指标验证。