[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-cc909c82-3b51-4046-96a1-c959f4f0eb1f":3,"$fa_Hv8xoWUdnDlxhndc5jAviwrxLrQaIwtv42Wd4iiqk":42},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":33},"cc909c82-3b51-4046-96a1-c959f4f0eb1f","postgres-best-practices","Postgres性能优化和最佳实践来自Supabase。在编写、审查或优化Postgres查询、模式设计或数据库配置时使用此技能。","cat_coding_backend","mod_coding","sickn33,coding","---\nname: postgres-best-practices\ndescription: \"Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.\"\nrisk: safe\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Supabase Postgres Best Practices\n\nComprehensive performance optimization guide for Postgres, maintained by Supabase. Contains rules across 8 categories, prioritized by impact to guide automated query optimization and schema design.\n\n## When to Use\nReference these guidelines when:\n- Writing SQL queries or designing schemas\n- Implementing indexes or query optimization\n- Reviewing database performance issues\n- Configuring connection pooling or scaling\n- Optimizing for Postgres-specific features\n- Working with Row-Level Security (RLS)\n\n## Rule Categories by Priority\n\n| Priority | Category | Impact | Prefix |\n|----------|----------|--------|--------|\n| 1 | Query Performance | CRITICAL | `query-` |\n| 2 | Connection Management | CRITICAL | `conn-` |\n| 3 | Security & RLS | CRITICAL | `security-` |\n| 4 | Schema Design | HIGH | `schema-` |\n| 5 | Concurrency & Locking | MEDIUM-HIGH | `lock-` |\n| 6 | Data Access Patterns | MEDIUM | `data-` |\n| 7 | Monitoring & Diagnostics | LOW-MEDIUM | `monitor-` |\n| 8 | Advanced Features | LOW | `advanced-` |\n\n## How to Use\n\nRead individual rule files for detailed explanations and SQL examples:\n\n```\nrules\u002Fquery-missing-indexes.md\nrules\u002Fschema-partial-indexes.md\nrules\u002F_sections.md\n```\n\nEach rule file contains:\n- Brief explanation of why it matters\n- Incorrect SQL example with explanation\n- Correct SQL example with explanation\n- Optional EXPLAIN output or metrics\n- Additional context and references\n- Supabase-specific notes (when applicable)\n\n## Full Compiled Document\n\nFor the complete guide with all rules expanded: `AGENTS.md`\n\n### When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,182,1493,"2026-05-16 13:34:24",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":25,"skillCount":32,"createdAt":26},"后端开发","backend","mdi-server","API、数据库、服务端架构",296,[34],{"id":35,"skillId":4,"version":36,"fileName":37,"fileSize":38,"filePath":39,"fileHash":40,"manifest":41,"createdAt":19},"7b76844e-778a-46e8-b10f-d2a6af9ff0bb","1.0.0","postgres-best-practices.zip",45347,"uploads\u002Fskills\u002Fcc909c82-3b51-4046-96a1-c959f4f0eb1f\u002Fpostgres-best-practices.zip","3c9350e8adb09e0f3e9fe0b1f1e7855d38a6023004b1fc363341cf73b3a3edfa","[{\"path\":\"AGENTS.md\",\"isDirectory\":false,\"size\":44927},{\"path\":\"README.md\",\"isDirectory\":false,\"size\":3173},{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":2293},{\"path\":\"metadata.json\",\"isDirectory\":false,\"size\":818},{\"path\":\"rules\u002F_contributing.md\",\"isDirectory\":false,\"size\":4147},{\"path\":\"rules\u002F_sections.md\",\"isDirectory\":false,\"size\":1682},{\"path\":\"rules\u002F_template.md\",\"isDirectory\":false,\"size\":1040},{\"path\":\"rules\u002Fadvanced-full-text-search.md\",\"isDirectory\":false,\"size\":1468},{\"path\":\"rules\u002Fadvanced-jsonb-indexing.md\",\"isDirectory\":false,\"size\":1444},{\"path\":\"rules\u002Fconn-idle-timeout.md\",\"isDirectory\":false,\"size\":1282},{\"path\":\"rules\u002Fconn-limits.md\",\"isDirectory\":false,\"size\":1325},{\"path\":\"rules\u002Fconn-pooling.md\",\"isDirectory\":false,\"size\":1382},{\"path\":\"rules\u002Fconn-prepared-statements.md\",\"isDirectory\":false,\"size\":1529},{\"path\":\"rules\u002Fdata-batch-inserts.md\",\"isDirectory\":false,\"size\":1287},{\"path\":\"rules\u002Fdata-n-plus-one.md\",\"isDirectory\":false,\"size\":1361},{\"path\":\"rules\u002Fdata-pagination.md\",\"isDirectory\":false,\"size\":1358},{\"path\":\"rules\u002Fdata-upsert.md\",\"isDirectory\":false,\"size\":1390},{\"path\":\"rules\u002Flock-advisory.md\",\"isDirectory\":false,\"size\":1531},{\"path\":\"rules\u002Flock-deadlock-prevention.md\",\"isDirectory\":false,\"size\":1855},{\"path\":\"rules\u002Flock-short-transactions.md\",\"isDirectory\":false,\"size\":1350},{\"path\":\"rules\u002Flock-skip-locked.md\",\"isDirectory\":false,\"size\":1353},{\"path\":\"rules\u002Fmonitor-explain-analyze.md\",\"isDirectory\":false,\"size\":1441},{\"path\":\"rules\u002Fmonitor-pg-stat-statements.md\",\"isDirectory\":false,\"size\":1418},{\"path\":\"rules\u002Fmonitor-vacuum-analyze.md\",\"isDirectory\":false,\"size\":1506},{\"path\":\"rules\u002Fquery-composite-indexes.md\",\"isDirectory\":false,\"size\":1454},{\"path\":\"rules\u002Fquery-covering-indexes.md\",\"isDirectory\":false,\"size\":1287},{\"path\":\"rules\u002Fquery-index-types.md\",\"isDirectory\":false,\"size\":1385},{\"path\":\"rules\u002Fquery-missing-indexes.md\",\"isDirectory\":false,\"size\":1218},{\"path\":\"rules\u002Fquery-partial-indexes.md\",\"isDirectory\":false,\"size\":1347},{\"path\":\"rules\u002Fschema-data-types.md\",\"isDirectory\":false,\"size\":1453},{\"path\":\"rules\u002Fschema-foreign-key-indexes.md\",\"isDirectory\":false,\"size\":1679},{\"path\":\"rules\u002Fschema-lowercase-identifiers.md\",\"isDirectory\":false,\"size\":1728},{\"path\":\"rules\u002Fschema-partitioning.md\",\"isDirectory\":false,\"size\":1548},{\"path\":\"rules\u002Fschema-primary-keys.md\",\"isDirectory\":false,\"size\":1821},{\"path\":\"rules\u002Fsecurity-privileges.md\",\"isDirectory\":false,\"size\":1566},{\"path\":\"rules\u002Fsecurity-rls-basics.md\",\"isDirectory\":false,\"size\":1372},{\"path\":\"rules\u002Fsecurity-rls-performance.md\",\"isDirectory\":false,\"size\":1493}]",{"code":43,"message":44,"data":45},200,"success",{"items":46,"stats":47,"page":50},[],{"averageRating":48,"totalRatings":48,"ratingCounts":49},0,[48,48,48,48,48],{"limit":51,"offset":48,"hasMore":52,"nextOffset":51,"ratedOnly":16},15,false]