PostgreSQL и Redis: 12 промтов, которые ускорят ваши запросы в 10 раз

Скорость — это валюта в мире данных. Если ваш PostgreSQL тормозит на сложных JOIN, а Redis используется только как простой кэш, вы оставляете деньги на столе. Хорошая новость: современные AI-ассистенты (вроде того, что вы используете для написания кода) могут стать вашим персональным DBA, если правильно составить промт. В этой подборке — 12 проверенных промтов, которые помогут вам проанализировать медленные запросы, создать идеальные индексы и настроить кэширование так, чтобы база летала. Никакой воды — только конкретные формулировки и примеры.

Промт 1: Диагностика медленных запросов

Задача: Найти и проанализировать запросы, которые тормозят вашу базу.

Промт:

Ты — эксперт по PostgreSQL. У меня есть база данных с таблицами users, orders, products. Вот результат EXPLAIN ANALYZE для моего запроса: [вставьте вывод]. Проанализируй план выполнения, укажи узкие места (seq scan, hash join, сортировки) и предложи конкретные меры: какие индексы создать, как переписать запрос, какие настройки изменить. Ответ дай в виде нумерованного списка, от самого важного к менее важному.

Пример использования: Вы скопировали вывод EXPLAIN ANALYZE SELECT * FROM orders JOIN users ON ... и получили конкретные рекомендации: создать индекс на orders.user_id, переписать SELECT * на явный список колонок, увеличить work_mem.

Промт 2: Генерация эффективных индексов

Задача: Спроектировать индексы для конкретных паттернов запросов.

Промт:

Ты — эксперт по индексам в PostgreSQL. У меня есть таблица orders (id, user_id, created_at, status, total). Вот типичные запросы: [перечислите 3-5 запросов]. Предложи набор индексов (B-tree, GIN, BRIN, частичные, составные) с обоснованием для каждого. Учти частоту обновления таблицы и соотношение чтения/записи. Укажи, какие запросы ускорятся, а какие могут замедлиться.

Пример: AI предложил составной индекс на (user_id, status, created_at DESC) для фильтрации по пользователю и статусу, и частичный индекс на (total) где status='pending' для отчетов по неоплаченным заказам.

Промт 3: Настройка кэширования в Redis

Задача: Спроектировать схему кэширования для типичных данных.

Промт:

Ты — эксперт по Redis. У меня есть веб-приложение с PostgreSQL, типичные данные: профили пользователей, лента новостей, сессии. Предложи стратегию кэширования: какие данные кэшировать, какие типы Redis использовать (STRING, HASH, LIST, SET, ZSET, JSON), какие TTL задать, как инвалидировать кэш при обновлении данных. Объясни, как избежать проблем с несогласованностью (cache penetration, avalanche, breakdown).

Пример: AI предложил использовать RedisJSON для профилей с TTL 1 час, ZSET для ленты с оценкой по времени, и паттерн cache-aside для инвалидации.

Промт 4: Анализ использования индексов

Задача: Проверить, какие индексы реально используются, а какие нет.

Промт:

Ты — эксперт по PostgreSQL. Вот результаты запроса к pg_stat_user_indexes и pg_stat_user_tables: [вставьте данные]. Определи неиспользуемые индексы, которые стоит удалить, и индексы, которые перегружены (часто сканируются). Дай рекомендации по обслуживанию: когда запускать REINDEX, VACUUM, ANALYZE.

Пример: AI увидел, что индекс на orders.total не использовался ни разу за 30 дней, и посоветовал его удалить, а для users.email — создать уникальный индекс, если его нет.

Промт 5: Оптимизация сложных JOIN-запросов

Задача: Ускорить запросы с множественными соединениями.

Промт:

Ты — эксперт по PostgreSQL. Вот мой запрос с JOIN: [вставьте SQL]. Он выполняется более 10 секунд. Проанализируй, какие индексы нужны для каждого JOIN, можно ли заменить JOIN на подзапрос или CTE, стоит ли использовать материализованные представления. Предложи оптимизированную версию запроса с пояснениями.

Пример: AI предложил заменить многочисленные JOIN на один запрос с оконной функцией и создать индекс на внешние ключи, что сократило время с 12 до 0.8 секунды.

Промт 6: Настройка Redis для горячих ключей

Задача: Решить проблему «горячих ключей» (hot keys) в Redis.

Промт:

Ты — эксперт по Redis. В моем приложении есть несколько ключей, которые читаются очень часто (например, популярные товары). Это создает нагрузку на один шард. Предложи стратегии для решения: шардирование по ключу, локальное кэширование, использование Redis Cluster, распределение ключей с суффиксами. Опиши плюсы и минусы каждой.

Пример: AI порекомендовал добавить случайный суффикс к ключу и хранить список таких ключей в ZSET, чтобы при чтении выбирать случайный вариант.

Промт 7: Поиск и устранение блокировок в PostgreSQL

Задача: Выявить блокировки и взаимоблокировки (deadlocks).

Промт:

Ты — эксперт по PostgreSQL. Вот вывод pg_locks и pg_stat_activity: [вставьте данные]. Определи, какие транзакции блокируют друг друга, и предложи меры: изменить порядок операций, уменьшить время транзакций, использовать SELECT FOR UPDATE SKIP LOCKED. Напиши SQL-запросы для мониторинга блокировок.

Пример: AI нашел блокировку из-за двух транзакций, обновляющих строки в разном порядке, и посоветовал всегда обновлять в одном порядке.

Промт 8: Кэширование агрегатов и сложных вычислений

Задача: Кэшировать результаты тяжелых агрегаций.

Промт:

Ты — эксперт по Redis. У меня есть отчеты, которые считаются 5 секунд: сумма продаж по месяцам, топ-10 товаров. Предложи схему кэширования: использовать Redis для хранения готовых агрегатов, обновлять их по расписанию или при изменении данных. Учти, что данные обновляются раз в час. Напиши пример кода на Python (redis-py) для получения и обновления кэша.

Пример: AI предложил хранить агрегаты в HASH с ключом report:sales:2026-08, TTL 2 часа, и обновлять через фоновый процесс.

Промт 9: Оптимизация запросов с полнотекстовым поиском

Задача: Ускорить поиск по тексту в PostgreSQL.

Промт:

Ты — эксперт по PostgreSQL. У меня есть таблица articles с полем body. Я использую LIKE '%word%', но это медленно. Предложи альтернативы: GIN-индекс с to_tsvector, pg_trgm, полнотекстовый поиск с конфигурацией русского языка. Приведи примеры SQL для создания индексов и запросов.

Пример: AI посоветовал создать GIN-индекс на to_tsvector('russian', body) и использовать @@ с plainto_tsquery, что ускорило поиск в 100 раз.

Промт 10: Стратегия TTL и очистка устаревших данных в Redis

Задача: Настроить автоматическую очистку кэша.

Промт:

Ты — эксперт по Redis. У меня в Redis хранятся сессии пользователей, кэш профилей и временные данные. Предложи оптимальные TTL для каждого типа: сессии 30 минут, профили 1 час, временные данные 5 минут. Объясни, как работает ленивая и активная очистка, и как выбрать TTL, чтобы не перегружать память.

Пример: AI объяснил, что для сессий можно использовать EXPIRE при установке ключа, а для профилей — обновлять TTL при каждом чтении, чтобы продлевать жизнь активным пользователям.

Промт 11: Сравнение производительности PostgreSQL и Redis для разных задач

Задача: Решить, когда использовать PostgreSQL, а когда Redis.

Промт:

Ты — архитектор БД. Сравни PostgreSQL и Redis по критериям: скорость чтения, записи, сложность запросов, надежность, масштабируемость. Дай рекомендации, какие типы данных и запросов лучше держать в каждой БД. Приведи примеры гибридной архитектуры.

Пример: AI предложил хранить основные данные в PostgreSQL, а горячие счетчики и лайки — в Redis, синхронизируя через фоновые задачи.

Промт 12: Мониторинг и профилирование запросов

Задача: Настроить мониторинг производительности БД.

Промт:

Ты — эксперт по PostgreSQL. Предложи набор метрик для мониторинга: количество медленных запросов, cache hit ratio, использование индексов, блокировки. Напиши SQL-запросы для сбора этих метрик и рекомендации по настройке pg_stat_statements. Также укажи, какие параметры конфигурации стоит изменить (shared_buffers, work_mem, effective_cache_size).

Пример: AI дал SQL для pg_stat_statements, который показывает запросы с наибольшим временем выполнения, и посоветовал увеличить shared_buffers до 25% от ОЗУ.

Заключение

Эти 12 промтов — ваш швейцарский нож для работы с PostgreSQL и Redis. Они помогут не только ускорить текущие запросы, но и выстроить систему, которая будет оставаться быстрой даже при росте нагрузки. Скопируйте нужный промт, адаптируйте под свои данные и используйте AI как опытного наставника, который всегда под рукой. Начните с диагностики медленных запросов — это даст быстрый результат и мотивацию копнуть глубже. А если у вас есть свои любимые промты для баз данных — поделитесь в комментариях, мы обновим подборку!

← Все статьи

Комментарии

Читайте также

SQL-промты, которые реально экономят часы: 10 сценариев для PostgreSQL от JOIN-монстров до тонкой оптимизации

25 августа 2026

Как ИИ ускорил наши Go-релизы в 3 раза: проверенные промты для микросервисов, горутин и оптимизации

24 августа 2026

12 AI-промтов, которые заменят рутину рекрутера: от скрининга до прогноза найма

24 августа 2026

10 промтов для Vue 3 + Nuxt: от реактивности до SSR — ускоряем разработку с нейросетью

24 августа 2026

Figma-промты, которые превращают дизайн-систему в конвейер: от токенов до прототипа

24 августа 2026

Как выучить английский для IT-собеседований с помощью нейросетей: 12 рабочих промтов

24 августа 2026

Промты для SMM 2026: Как ИИ превращает контент-план в вирусную машину

24 августа 2026

SQL-промпты, которые реально экономят часы: от сложных JOIN до тонкой настройки PostgreSQL

24 августа 2026

Горутины под контролем: 12 промтов для Go-микросервисов, которые превратят хаос в симфонию

24 августа 2026