11 промтов для SQL-оптимизации и проектирования БД: PostgreSQL и MongoDB без тормозов

Каждый разработчик, работающий с базами данных, рано или поздно сталкивается с ситуацией, когда запрос выполняется секундами, индексы не используются, а схема данных превращается в запутанный лабиринт. PostgreSQL и MongoDB — мощные инструменты, но их эффективность напрямую зависит от того, насколько грамотно вы формулируете задачи и анализируете узкие места. В этой подборке я собрал 11 промтов, которые помогут вам быстрее находить проблемы, проектировать оптимальные схемы и писать запросы, которые летают.

Мы пройдём путь от базовых операций — анализа запросов и создания индексов — до экспертных сценариев, таких как шардирование и работа с транзакциями. Каждый промт сопровождается примером результата, который вы можете получить, используя AI-ассистента или собственный анализ. Статья будет полезна как новичкам, делающим первые шаги в оптимизации, так и опытным инженерам, ищущим свежие идеи.

Базовый уровень

1. Анализ медленного запроса в PostgreSQL

Задача: Выявить причину медленного выполнения запроса.

Промт:

Проанализируй план выполнения запроса PostgreSQL, найди узкие места и предложи оптимизации. Запрос: SELECT * FROM orders WHERE user_id = 123 AND created_at > '2026-01-01' ORDER BY total DESC LIMIT 10;

Пример результата:
AI-ассистент запросит вывод EXPLAIN ANALYZE, укажет на последовательное сканирование таблицы orders, предложит создать составной индекс по (user_id, created_at, total) и переписать запрос с использованием покрывающего индекса. Вы сэкономите часы ручного анализа.

2. Создание индекса в MongoDB

Задача: Ускорить поиск по полю в коллекции.

Промт:

Какой индекс создать для коллекции users в MongoDB, чтобы ускорить запрос: db.users.find({ email: "test@example.com" })?

Пример результата:
Ассистент порекомендует создать уникальный индекс по полю email: db.users.createIndex({ email: 1 }, { unique: true }). Также объяснит, что индекс автоматически используется для запросов на равенство.

3. Проектирование схемы для интернет-магазина

Задача: Спроектировать коллекции MongoDB для каталога товаров и заказов.

Промт:

Предложи структуру коллекций MongoDB для интернет-магазина: товары, категории, заказы, пользователи. Учти необходимость частых запросов по категориям и истории заказов.

Пример результата:
Ассистент предложит вложенные документы для категорий внутри товаров (денормализация) и отдельные коллекции для заказов с массивом товаров. Также даст рекомендации по индексам.

Продвинутый уровень

4. Оптимизация JOIN в PostgreSQL

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

Промт:

Запрос с 5 JOIN выполняется 10 секунд. Как оптимизировать? Вот план выполнения: [вставить EXPLAIN ANALYZE].

Пример результата:
Ассистент проанализирует план, обнаружит неэффективный Nested Loop, предложит изменить порядок соединения, добавить индексы на внешние ключи и использовать CTE для материализации промежуточных результатов.

5. Агрегация в MongoDB

Задача: Построить сложный агрегационный пайплайн для отчёта.

Промт:

Напиши агрегационный запрос MongoDB для расчёта среднего чека по дням за последний месяц, с группировкой по категориям товаров.

Пример результата:
Ассистент сгенерирует пайплайн с $match, $unwind, $group, $sort и $project. Вы получите готовый код с комментариями.

6. Партиционирование таблицы в PostgreSQL

Задача: Разбить большую таблицу на партиции для ускорения запросов.

Промт:

Как разбить таблицу logs с 500 млн строк на партиции по месяцам в PostgreSQL 14+?

Пример результата:
Ассистент предложит использовать декларативное партиционирование по диапазону (RANGE) с ключом created_at, приведёт пример создания родительской таблицы и партиций, а также настройки автоматического создания новых партиций.

7. Использование транзакций в MongoDB

Задача: Обеспечить атомарность операций в MongoDB.

Промт:

Как выполнить несколько операций записи в MongoDB атомарно? Нужно обновить баланс пользователя и создать запись о транзакции.

Пример результата:
Ассистент расскажет о многодокументных транзакциях (доступны с версии 4.0), приведёт пример с session.startTransaction(), commitTransaction() и обработкой ошибок.

Экспертный уровень

8. Шардирование в MongoDB

Задача: Настроить шардирование для горизонтального масштабирования.

Промт:

Спроектируй стратегию шардирования для коллекции events с 1 млрд документов. Как выбрать shard key?

Пример результата:
Ассистент проанализирует кардинальность полей, предложит составной shard key, например { tenant_id: 1, created_at: 1 }, объяснит, как избежать горячих точек, и даст команды для включения шардирования.

9. Настройка autovacuum в PostgreSQL

Задача: Уменьшить bloat и улучшить производительность.

Промт:

Таблица orders часто обновляется, autovacuum не справляется. Как настроить параметры autovacuum для этой таблицы?

Пример результата:
Ассистент предложит изменить autovacuum_vacuum_scale_factor и autovacuum_vacuum_threshold для конкретной таблицы, приведёт команды ALTER TABLE, а также расскажет о мониторинге через pg_stat_user_tables.

10. Оптимизация запросов с JSONB в PostgreSQL

Задача: Ускорить поиск по JSONB-полю.

Промт:

Есть таблица products с полем attributes JSONB. Запрос WHERE attributes @> '{"color": "red"}' выполняется медленно. Как оптимизировать?

Пример результата:
Ассистент порекомендует создать GIN-индекс: CREATE INDEX idx_attributes ON products USING GIN (attributes); и использовать оператор @> для поиска. Также объяснит разницу между jsonb и json.

11. Миграция с MongoDB на PostgreSQL

Задача: Спланировать миграцию данных из MongoDB в PostgreSQL.

Промт:

Как перенести данные из MongoDB в PostgreSQL с минимальным простоем? Коллекции: users, orders, products.

Пример результата:
Ассистент предложит использовать ETL-инструменты (например, Airbyte или собственный скрипт на Python), составит план поэтапной миграции с двойной записью, даст советы по преобразованию документов в реляционные таблицы.

Как использовать эти промты

Все промты можно применять с любым AI-ассистентом, поддерживающим контекст. Чем больше деталей вы предоставите (версия СУБД, структура таблиц, примеры данных), тем точнее будет ответ. Не забывайте проверять рекомендации на тестовом окружении.

Источники и дополнительное чтение

  • Официальная документация PostgreSQL: https://www.postgresql.org/docs/current/
  • Документация MongoDB: https://www.mongodb.com/docs/
  • Книга «PostgreSQL 14. Полное руководство» (авторы: Д. Рогов и др.)
  • Блог Use The Index, Luke: https://use-the-index-luke.com/

Эти промты — не волшебная таблетка, а инструмент, который экономит время и помогает структурировать мысли. Экспериментируйте, адаптируйте под свои задачи и делитесь находками в комментариях.

← Все статьи

Комментарии

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

Модно или необходимо? Почему ИИ становится вопросом выживания бизнеса

30 июля 2026

Автоматизация полива с AI: пошаговое руководство по интеграции датчика дождя и влажности почвы с ASI Biont

10 июля 2026

Промышленный IoT (IIoT) и SCADA-системы: подробный разбор курса asibiont.com

13 августа 2026

FSD, Clean или Modular? Шесть вариантов React-магазина под четырьмя изменениями — разбор архитектурных подходов

18 июля 2026

Промты для RAG: как улучшить индексацию, поиск и генерацию с векторными БД

31 июля 2026

Как автоматизировать налоговую отчётность бизнеса с помощью Python и AI: пошаговое руководство для предпринимателей (2026)

22 июня 2026

Cambridge IGCSE Biology (0610): Полный разбор программы Core и Extended на asibiont.com

28 июля 2026

GitHub + AI-агент: автоматизация DevOps без кода с ASI Biont

30 июня 2026

Excel вместо аудитора: 10 формул и промтов для автоматической сверки актов и налоговой отчётности

18 октября 2026