Supabase Postgres 查询、索引与 RLS 调优
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/tune-supabase-postgres-queries-indexing-and-rls-with-supabase-postgres-best-practices。
技能介绍
要解决的问题
Supabase 项目跑到中后期,性能问题往往不会集中在一个地方:某个列表页突然变慢,explain analyze 显示全表扫描;为了补救,索引越加越多,写入延迟开始上升;而真正棘手的是,绕过 RLS 的查询偶尔能拿到越权数据,或者因为策略写法过于宽泛,每次请求都触发额外的策略校验。
这些缺陷分散在 SQL、Schema 和权限策略三个层面,靠经验零散修补很难形成一致的工程标准。
这个技能做什么
它以 Supabase 官方的优先级建议为基准,对现有的 Postgres 工作做一次结构化审查,覆盖五个方向:
- 查询性能:检查查询是否命中索引、是否存在隐式类型转换、是否缺少合适的过滤条件
- Schema 设计:评估表结构是否利于查询计划,关系建模是否合理
- 索引策略:识别缺失索引与冗余索引,关注复合索引的列顺序
- 连接处理:审视连接池配置与事务边界,避免连接耗尽
- RLS 安全性:定位权限策略中可能导致越权或性能问题的写法
使用边界
该技能需要你提供 Supabase Postgres 项目的访问权限,以及 SQL Schema 与查询上下文。如果手头有 EXPLAIN 输出或性能指标,审查会更有依据。它不会代替你做架构决策,也不会自动改写代码——它输出的是一份按优先级排列的问题清单与修复方向。
使用场景
- 上线前审查 Supabase 查询性能,定位慢接口的全表扫描问题
- 排查 RLS 策略是否存在越权风险,修复过于宽泛的权限定义
- 优化 Supabase 索引配置,减少多余索引带来的写入延迟
- 梳理表结构与连接配置,解决数据库连接池耗尽的问题
适合人员
- 使用 Supabase 的全栈工程师,需要在迭代中兼顾功能开发与数据库规范
- 负责 Postgres 性能优化的后端工程师,需要定位并解决查询瓶颈
- 关注数据安全的开发者,需要确保 RLS 策略不会造成越权访问
- 管理 Supabase 项目的运维人员,需要维护 Schema、索引与连接配置的稳定