Supabase Postgres 最佳实践
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/supabase-postgres-best-practices。
技能介绍
你在解决什么问题
Postgres 在 Supabase 上跑业务时,慢查询、连接耗尽、RLS 写错导致越权或全表扫描,往往来自索引缺失、连接池配置不当或模式与访问模式不匹配。这类问题单靠「加索引试试」很难系统排查,需要一套按影响排序、可对照执行的规则,而不是零散博客链接。
技能如何组织内容
本技能引用 Supabase 维护的 Postgres 综合性能优化指南,把实践拆成 8 个类别,并按优先级排列,便于在自动化审查或人工 Code Review 时先处理「关键」项:
| 优先级 | 类别 | 影响 |
|--------|------|------|
| 1 | 查询性能(query-) | 关键 |
| 2 | 连接管理(conn-) | 关键 |
| 3 | 安全与 RLS(security-) | 关键 |
| 4 | 模式设计(schema-) | 高 |
| 5~8 | 锁、数据访问、监控、进阶(lock- / data- / monitor- / advanced-) | 中到低 |
每条规则通常包含:为何重要、错误 SQL 与解释、正确写法、可选的 EXPLAIN 或指标说明,以及 Supabase 场景下的补充说明。需要通读时,可对照技能内的完整展开文档(如 AGENTS.md)。
适用场景与边界
适合在编写 SQL、设计表结构、加索引、审性能、配连接池或扩展、以及实现 行级安全(RLS) 时作为检查清单。它是指南型规则集,不会替你执行迁移或自动改库;具体业务约束、数据量与 Supabase 套餐限制仍需结合 EXPLAIN ANALYZE、监控与压测验证。
使用场景
- 在 Supabase 项目上新增复杂 JOIN 查询前,按 query- 规则对照索引与写法,避免上线后全表扫描
- 表结构定稿前用 schema- 规则检查范式、外键与访问模式是否匹配应用的读写路径
- 生产出现连接数打满或 PgBouncer 排队时,按 conn- 类别逐项核对池大小与 idle 超时配置
- 启用 RLS 策略后部分用户查不到数据或越权,用 security- 规则审查策略表达式与索引支持
适合人员
- 在 Supabase 上维护多租户 SaaS、需要同时兼顾查询延迟与 RLS 正确性的后端工程师
- 负责 Postgres 慢查询治理、要把 EXPLAIN 结论沉淀成可重复审查清单的 DBA 或平台工程师
- 从单体迁到 Supabase、需要在不改业务语义前提下重做索引与连接池配置的全栈开发者
- 做数据库 Code Review 时希望按影响优先级(查询、连接、安全先于进阶特性)排期的 Tech Lead