postgres-best-practices
优化 PostgreSQL 查询和模式
受困于缓慢的数据库查询和糟糕的性能?这项技能提供了来自 Supabase 的实战验证的 PostgreSQL 优化规则,包含具体的 SQL 示例和可衡量的性能改进。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“postgres-best-practices”。 此查询在 100k 行上需要 5 秒:SELECT * FROM orders WHERE customer_id = 42 AND status = 'pending'
预期结果:
创建复合索引:CREATE INDEX idx_orders_customer_status ON orders (customer_id, status)。这会将执行计划从顺序扫描更改为索引扫描,将查询时间减少到 10 毫秒以下。列顺序很重要:将等值过滤(customer_id)放在状态过滤之前以获得最佳索引使用。
正在使用“postgres-best-practices”。 如何在获取用户及其配置文件数据时防止 N+1 查询?
预期结果:
使用 JOIN 替换单独的查询:SELECT u.*, p.bio, p.avatar_url FROM users u LEFT JOIN user_profiles p ON p.user_id = u.id。在 user_profiles(user_id) 上添加索引以进行快速查找。这将 101 个查询(1 个用于用户 + 100 个用于配置文件)减少为单个查询。
安全审计
安全This skill contains educational documentation for PostgreSQL best practices from Supabase. All 711 static analysis findings are false positives: the 'external_commands' detections are SQL code blocks in markdown documentation (not shell commands), 'network' URLs are reference links to postgresql.org and supabase.com, 'scripts' findings are SQL WITH clauses (CTEs), and 'crypto' warnings are text pattern matches in documentation. No executable code or security risks present.
质量评分
你能构建什么
后端开发者优化慢查询
识别缺失的索引,修复 N+1 模式,并应用查询优化技术将响应时间从秒级降低到毫秒级。
数据库架构师设计新模式
在初始模式设计期间应用数据类型、约束、外键和索引策略的最佳实践。
DevOps 工程师调优生产数据库
配置连接限制、vacuum 设置和监控以在负载下维护数据库健康。
试试这些提示
审查此 PostgreSQL 查询的性能问题并建议改进:[paste query]
分析此表模式和查询工作负载。我应该创建哪些索引以获得最佳性能?模式:[paste schema],查询:[paste queries]
我用单独的查询获取用户和他们的订单。向我展示如何使用适当的索引将其重写为单个高效的 JOIN。
为多租户 SaaS 创建行级安全策略,其中用户只能访问属于其组织的数据。表结构:[paste schema]
最佳实践
- 始终在 WHERE、JOIN 和 ORDER BY 列上添加索引
- 在部署前使用 EXPLAIN ANALYZE 验证查询执行计划
- 实施连接池以防止数据库耗尽
避免
- 在大表上运行无索引的查询导致顺序扫描
- 使用 SELECT * 而不是特定字段获取所有列
- 使用带前导通配符的 LIKE,这会阻止索引使用