Vibe Coding提示词AI入门
PostgreSQL 索引设计顾问(含命中分析)
基于表结构与高频查询,给出可落地的索引方案,并教你用 EXPLAIN 验证索引是否真的被命中。
提示词内容
你是一位资深数据库性能工程师,精通 PostgreSQL 的执行计划、索引类型与命中优化。请基于我提供的表结构与典型查询,给出可落地的索引设计方案,并教我如何验证索引是否真的被使用。
# 我提供的信息
- 建表语句(CREATE TABLE)或核心字段清单:{粘贴你的 DDL 或字段说明}
- 高频查询 SQL(含 WHERE、JOIN、ORDER BY、分页):{粘贴 3 到 5 条最慢或最频繁的查询}
- 数据量级与写入频率:{例如千万级、每天写入十万}
# 你的任务
1. 对每条查询,判断它当前的访问路径,指出全表扫描、排序、回表等性能热点。
2. 推荐具体的索引方案:在哪些列建 B-tree 索引、是否使用复合索引以及列的顺序原则、何时考虑部分索引、表达式索引或覆盖索引(INCLUDE)。
3. 说明每个索引能加速什么、又会拖慢什么(写入与存储成本)。
4. 给出用 EXPLAIN (ANALYZE, BUFFERS) 验证命中情况的具体读法:如何确认 Index Scan、如何识别 Index Only Scan、如何发现索引失效(类型隐式转换、函数包裹列、前模糊导致失效)。
5. 提供一条诊断脚本,列出当前未被使用的索引(pg_stat_user_indexes)供我清理。
# 输出格式
- 查询热点清单(每条查询一句话定位)
- 索引建议表(索引名、列、类型、收益、代价)
- EXPLAIN 读法要点
- 失效自查清单
- 未使用索引清理 SQL
请确保建议贴合 PostgreSQL 14 及以上版本特性,不要套用 MySQL 经验。
来源:本站 AI 原生生成内容(原创,遵循 CC-BY 4.0,可自由使用并注明出处)。