Введение
Базы данных — это фундамент любого современного приложения. Но даже опытные разработчики часто тратят часы на написание сложных запросов или отладку производительности. В 2026 году AI-инструменты (например, ChatGPT, Claude или Gemini) стали незаменимыми помощниками: они генерируют код, объясняют планы выполнения и предлагают оптимизации. Однако качество ответа напрямую зависит от того, как вы формулируете промт (промпт).
В этой статье я собрал 10 проверенных промтов для PostgreSQL, MongoDB и Redis. Каждый из них решает конкретную задачу: от написания запросов до настройки индексов и миграций. Промты можно копировать и использовать сразу — просто подставьте свои данные.
1. PostgreSQL: написание сложного запроса с JOIN и агрегацией
Когда использовать: Вы работаете с реляционной БД и нужно объединить несколько таблиц, посчитать итоги (суммы, средние) и отфильтровать результаты.
Промт:
Я работаю с PostgreSQL 16. У меня есть таблицы: orders (id, user_id, created_at, total_amount), users (id, name, email), order_items (id, order_id, product_id, quantity, price). Напиши SQL-запрос, который для каждого пользователя выведет: имя, email, общее количество заказов, общую сумму всех заказов и средний чек. Отсортируй по убыванию общей суммы. Добавь комментарии к каждому блоку запроса.
Пример использования:
Вы скопировали промт, заменили названия таблиц на свои, и AI сгенерировал готовый запрос. Экономия времени — 15–20 минут на ручное написание.
2. PostgreSQL: поиск и оптимизация медленных запросов
Когда использовать: Приложение тормозит, нужно найти «узкие места» в запросах.
Промт:
У меня PostgreSQL 16. Включи pg_stat_statements. Напиши запрос, который покажет топ-10 самых медленных запросов по среднему времени выполнения за последние 24 часа. Для каждого запроса выведи: текст запроса (первые 100 символов), среднее время, количество вызовов, процент от общего времени. Затем для самого медленного запроса предложи варианты оптимизации: какие индексы добавить, можно ли переписать JOIN, стоит ли добавить материализованное представление.
Почему это работает: AI анализирует план выполнения (EXPLAIN ANALYZE) и даёт конкретные рекомендации. По данным официальной документации PostgreSQL, правильно подобранный индекс может ускорить запрос в 100–1000 раз.
3. PostgreSQL: генерация миграции для изменения схемы
Когда использовать: Нужно добавить новую колонку, изменить тип данных или добавить ограничение — без потери данных.
Промт:
У меня PostgreSQL 16. Есть таблица users с колонками: id (SERIAL PRIMARY KEY), name (VARCHAR(100)), email (VARCHAR(255) UNIQUE). Нужно: 1) добавить колонку phone VARCHAR(20) с ограничением NOT NULL и значением по умолчанию '+0'; 2) изменить тип колонки name на TEXT; 3) добавить индекс на email, если его нет. Напиши SQL-скрипт для миграции с проверками: сначала проверить существование колонки и индекса, чтобы миграция была идемпотентной.
Результат: AI генерирует безопасный скрипт с использованием IF NOT EXISTS. Это предотвращает ошибки при повторном запуске.
4. MongoDB: агрегационный пайплайн для аналитики
Когда использовать: Нужно получить сводку по данным, например, количество заказов по месяцам или средний чек по категориям.
Промт:
У меня MongoDB 7.0. Коллекция orders содержит документы вида: { _id, userId, items: [{ productId, price, quantity }], createdAt, status }. Напиши агрегационный пайплайн, который: 1) фильтрует только завершённые заказы (status: "completed"); 2) группирует по году и месяцу (из createdAt); 3) для каждой группы считает общее количество заказов, общую выручку (сумма price * quantity по всем items) и средний чек. Отсортируй по году и месяцу по возрастанию. Используй $dateToString для форматирования даты.
Совет: Этот промт можно адаптировать под любую коллекцию — просто опишите структуру документа.
5. MongoDB: создание индексов для ускорения запросов
Когда использовать: Запросы к коллекции тормозят, пользователи жалуются на задержки.
Промт:
У меня MongoDB 7.0. Коллекция users с 10 миллионами документов. Чаще всего выполняются запросы: 1) find({ email: "..." }); 2) find({ createdAt: { $gte: ... } }).sort({ createdAt: -1 }); 3) aggregate с $match по status и $sort по createdAt. Напиши команды для создания подходящих индексов (составные, частичные, с сортировкой). Объясни, почему каждый индекс подходит для соответствующего запроса, и какой тип сканирования (COLLSCAN, IXSCAN) будет использоваться после создания.
Почему это важно: Без индексов MongoDB выполняет полное сканирование коллекции (COLLSCAN), что на 10 млн документов может занимать секунды. Составной индекс сокращает время до миллисекунд.
6. MongoDB: миграция данных с преобразованием
Когда использовать: Нужно перенести данные из одной коллекции в другую, изменив структуру (например, объединить поля или добавить новые).
Промт:
У меня MongoDB 7.0. Есть коллекция old_users с документами: { _id, firstName, lastName, email, phone }. Нужно создать новую коллекцию new_users с документами вида: { _id, fullName (firstName + ' ' + lastName), contact: { email, phone }, createdAt: new Date() }. Напиши скрипт с использованием aggregate и $out, который выполнит преобразование и запишет результат в new_users. Добавь обработку ошибок: если firstName или lastName пустые, пропускать документ.
Практический пример: Такая миграция выполняется за один пайплайн без написания кода на Python или Node.js.
7. Redis: настройка кэширования с TTL
Когда использовать: Нужно реализовать кэш для часто запрашиваемых данных (например, профили пользователей или список товаров).
Промт:
Я использую Redis 7.4. У меня есть приложение на Node.js, которое часто запрашивает профили пользователей из PostgreSQL. Напиши план кэширования: 1) какую структуру данных использовать (строки, хеши) для хранения профиля с полями name, email, avatar; 2) какой TTL установить для данных, которые обновляются раз в час; 3) напиши команды Redis для установки (SET/HSET) и получения (GET/HGETALL) кэша; 4) предложи стратегию инвалидации кэша при обновлении профиля в БД.
Результат: AI предлагает использовать хеши (HSET) для хранения полей профиля, устанавливает TTL 3600 секунд и рекомендует паттерн Cache-Aside с удалением ключа при обновлении.
8. Redis: реализация очереди задач
Когда использовать: Нужно обрабатывать фоновые задачи (отправка писем, генерация отчётов).
Промт:
У меня Redis 7.4. Нужно реализовать очередь задач для отправки email-уведомлений. Каждая задача содержит: to (email), subject, body. Напиши: 1) команды для добавления задачи в очередь (используй список с LPUSH); 2) команды для извлечения задачи (BRPOP с таймаутом 5 секунд); 3) скрипт на Lua, который атомарно перемещает задачу из очереди в processing-список и удаляет её после успешной отправки. Объясни, как избежать потери задач при падении воркера.
Почему это полезно: Redis — одна из самых популярных систем для очередей (по данным Stack Overflow Developer Survey 2025, Redis используют 38% разработчиков). ASI Biont поддерживает подключение к Redis через API — подробнее на asibiont.com/courses.
9. Универсальный промт: сравнение производительности запросов
Когда использовать: Нужно выбрать оптимальный способ выполнения запроса (например, JOIN vs подзапрос, или find vs aggregate).
Промт:
У меня [PostgreSQL/MongoDB/Redis]. Есть две альтернативы для запроса: [опишите обе]. Напиши EXPLAIN ANALYZE для каждого варианта и сравни: количество строк, затраченное время, тип сканирования (Seq Scan vs Index Scan, COLLSCAN vs IXSCAN). Какой вариант производительнее и почему? Предложи третий, ещё более оптимальный способ, если он есть.
Пример: Сравнение LEFT JOIN с подзапросом в PostgreSQL. AI покажет, что JOIN часто быстрее, но не всегда — для малых подмножеств подзапрос может быть эффективнее.
10. Универсальный промт: генерация документации по схеме БД
Когда использовать: Нужно быстро подготовить описание таблиц, коллекций или ключей для команды или нового разработчика.
Промт:
У меня [PostgreSQL/MongoDB/Redis]. Вот схема: [вставьте DDL, JSON-схему или описание ключей]. Сгенерируй документацию в формате Markdown: для каждой таблицы/коллекции/ключа укажи назначение, список полей с типами и ограничениями, примеры типичных запросов, и описание индексов. Добавь раздел с наиболее частыми ошибками при работе с этой схемой.
Экономия времени: Вместо того чтобы вручную писать документацию (что занимает 1–2 часа), вы получаете готовый файл за 2 минуты.
Заключение
Промты — это не магия, а инструмент. Они экономят время, снижают количество ошибок и помогают быстрее разбираться в незнакомых СУБД. Используйте их как шпаргалку: подставьте свои данные, уточните версию БД и опишите структуру как можно детальнее. Чем точнее промт, тем качественнее ответ.
Попробуйте эти промты в работе — и вы увидите, как AI превращается в коллегу, который всегда под рукой. Если у вас есть свои проверенные промты для баз данных, делитесь ими в комментариях — дополним подборку вместе!
Комментарии