postgres-best-practices
Оптимизация запросов и схем PostgreSQL
Страдаете от медленных запросов к базе данных и низкой производительности? Этот навык предоставляет проверенные временем правила оптимизации PostgreSQL от Supabase с конкретными примерами SQL и измеримыми улучшениями производительности.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «postgres-best-practices». This query takes 5 seconds on 100k rows: SELECT * FROM orders WHERE customer_id = 42 AND status = 'pending'
Ожидаемый результат:
Create a composite index: CREATE INDEX idx_orders_customer_status ON orders (customer_id, status). This changes the execution plan from sequential scan to index scan, reducing query time to under 10ms. The column order matters: place the equality filter (customer_id) before the status filter for optimal index usage.
Использование «postgres-best-practices». How do I prevent N+1 queries when fetching users with their profile data?
Ожидаемый результат:
Replace individual queries with a JOIN: SELECT u.*, p.bio, p.avatar_url FROM users u LEFT JOIN user_profiles p ON p.user_id = u.id. Add an index on user_profiles(user_id) for fast lookups. This reduces 101 queries (1 for users + 100 for profiles) to a single query.
Аудит безопасности
Безопасно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 и мониторинг для поддержания здоровья базы данных под нагрузкой.
Попробуйте эти промпты
Review this PostgreSQL query for performance issues and suggest improvements: [paste query]
Analyze this table schema and query workload. What indexes should I create for optimal performance? Schema: [paste schema], Queries: [paste queries]
I'm fetching users and their orders with separate queries. Show me how to rewrite this as a single efficient JOIN with proper indexing.
Create a Row-Level Security policy for a multi-tenant SaaS where users can only access data belonging to their organization. Table structure: [paste schema]
Лучшие практики
- Всегда добавляйте индексы на столбцы WHERE, JOIN и ORDER BY
- Используйте EXPLAIN ANALYZE для проверки планов выполнения запросов перед развёртыванием
- Реализуйте пул соединений для предотвращения исчерпания базы данных
Избегать
- Запуск неиндексированных запросов на больших таблицах, вызывающий последовательное сканирование
- Получение всех столбцов с помощью SELECT * вместо конкретных полей
- Использование LIKE с ведущими подстановочными символами, что предотвращает использование индексов
Часто задаваемые вопросы
Как узнать, какие столбцы нуждаются в индексах?
Что такое N+1 и как это исправить?
Когда следует использовать частичные индексы?
Как работает Row-Level Security?
Какой размер пула соединений следует использовать?
Почему мои запросы медленные после добавления индексов?
Сведения для разработчиков
Автор
sickn33Лицензия
MIT
Репозиторий
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/postgres-best-practicesСсылка
main
Структура файлов