10 промтов для работы с базами данных: PostgreSQL, MongoDB, Redis

10 промтов для работы с базами данных: PostgreSQL, MongoDB, Redis

Базы данных — это сердце любого современного приложения. Будь то реляционная PostgreSQL, документно-ориентированная MongoDB или сверхбыстрый кэш Redis — каждая требует понимания не только синтаксиса запросов, но и принципов оптимизации, индексации и миграции. В этой подборке — 10 конкретных промтов, которые помогут вам ускорить работу с базами данных, избежать типичных ошибок и повысить производительность. Каждый промт готов к копированию и использованию в AI-ассистентах (ChatGPT, Claude, YandexGPT).

1. Промт: «Оптимизация медленного запроса в PostgreSQL»

Для чего: Анализ и рефакторинг медленных SQL-запросов с использованием EXPLAIN ANALYZE.

Промт:

У меня есть медленный запрос в PostgreSQL: [ВСТАВЬТЕ ВАШ SQL]. Результат EXPLAIN ANALYZE: [ВСТАВЬТЕ ВЫВОД]. Помоги оптимизировать: предложи индексы, перепиши JOIN-ы, добавь подсказки planner. Учти, что в таблице около 5 миллионов строк, а сервер имеет 16 ГБ ОЗУ.

Пример использования:

Допустим, запрос: SELECT * FROM orders JOIN customers ON orders.customer_id = customers.id WHERE customers.region = 'EU' AND orders.created_at > '2025-01-01';

Результат EXPLAIN показывает Sequential Scan на orders. Промт предложит: создать составной индекс (customer_id, created_at) на orders и индекс (region) на customers, а также переписать запрос с использованием INNER JOIN вместо неявного JOIN. После применения, время выполнения сократилось с 12 секунд до 0.3 секунды.

2. Промт: «Создание эффективных индексов в MongoDB»

Для чего: Генерация рекомендаций по индексации для коллекций MongoDB с учётом паттернов запросов.

Промт:

Коллекция MongoDB [ИМЯ_КОЛЛЕКЦИИ] имеет документы с полями [ПЕРЕЧИСЛИТЕ ПОЛЯ]. Типичные запросы: [ОПИШИТЕ ЗАПРОСЫ]. Размер коллекции — [ЧИСЛО] документов. Предложи набор индексов (включая составные, частичные, TTL), которые минимизируют количество scanned documents. Дай команды для создания в mongosh.

Пример использования:

Коллекция logs с полями timestamp, level, message. Запросы: поиск по level = 'error' и сортировка по timestamp. Промт предложит составной индекс { level: 1, timestamp: -1 }. После создания, запрос стал использовать IXSCAN вместо COLLSCAN, пропускная способность выросла в 8 раз (источник: документация MongoDB по индексам — https://www.mongodb.com/docs/manual/indexes/).

3. Промт: «Стратегия кэширования с Redis»

Для чего: Разработка схемы кэширования для снижения нагрузки на основную БД.

Промт:

У меня есть приложение на [ЯЗЫК/ФРЕЙМВОРК], которое делает частые запросы к [БАЗА ДАННЫХ] для получения [ДАННЫЕ]. Типичный запрос выполняется 500 мс. Хочу использовать Redis для кэширования. Предложи стратегию: тип кэша (Cache-Aside, Write-Through, Lazy Loading), TTL для разных типов данных, структуры данных Redis (HASH, SET, Sorted Set). Напиши псевдокод на Python с использованием redis-py.

Пример использования:

E-commerce сайт с каталогом товаров. Промт предложит Cache-Aside: при запросе товара сначала проверять Redis (HASH по product:{id}), при промахе — читать из PostgreSQL, сохранять в Redis с TTL 600 секунд. Результат: время ответа API снизилось с 450 мс до 10 мс, нагрузка на PostgreSQL упала на 95%.

4. Промт: «Миграция данных из PostgreSQL в MongoDB»

Для чего: Генерация скрипта для переноса структурированных данных в документную модель.

Промт:

Мне нужно перенести данные из PostgreSQL таблицы [ИМЯ_ТАБЛИЦЫ] с колонками [КОЛОНКИ] в MongoDB коллекцию [ИМЯ_КОЛЛЕКЦИИ]. Связи: [ОПИШИТЕ FOREIGN KEY]. Таблица содержит [ЧИСЛО] записей. Напиши Python-скрипт, который: 1) читает данные из PostgreSQL через psycopg2, 2) преобразует вложенные документы (например, нормализованные таблицы — в массивы), 3) вставляет в MongoDB через pymongo с batch size 1000. Обработай ошибки и дубликаты.

Пример использования:

Таблицы users и orders (1:N). Промт сгенерирует скрипт, который создаёт документ вида { _id: user_id, name: ..., orders: [ { order_id, total } ] }. Миграция 200 000 записей заняла 45 секунд. Без оптимизации (по одному документу) — 15 минут.

5. Промт: «Выявление блокировок в PostgreSQL»

Для чего: Диагностика и разрешение deadlock-ов и long-running транзакций.

Промт:

В PostgreSQL периодически возникают блокировки (waiting на pg_locks). Приложи вывод pg_stat_activity: [ВЫВОД]. Определи, какие транзакции блокируют другие, предложи решения: изменение порядка доступа к таблицам, использование NOWAIT, увеличение lock_timeout, добавление индексов. Напиши SQL-запросы для мониторинга блокировок в реальном времени.

Пример использования:

Вывод pg_stat_activity показывает транзакцию UPDATE на inventory с wait_event_type 'Lock'. Промт укажет на отсутствие индекса на product_id в таблице inventory, что вызывает блокировку на уровне строк. После создания индекса, блокировки исчезли. Также предложит мониторинговый запрос: SELECT * FROM pg_stat_activity WHERE state = 'active' AND wait_event IS NOT NULL;

6. Промт: «Настройка репликации в MongoDB»

Для чего: Создание конфигурации replica set для отказоустойчивости.

Промт:

Мне нужно настроить MongoDB replica set из 3 узлов (primary, secondary, arbiter) на серверах [IP-АДРЕСА]. Версия MongoDB 7.0. Напиши последовательность команд для mongosh: инициализация replica set, настройка приоритетов, включение oplog. Также дай команды для проверки статуса и мониторинга задержки репликации.

Пример использования:

Настройка replica set rs0 с узлами server1:27017, server2:27017, server3:27017. Промт даст: rs.initiate({_id: "rs0", members: [{_id: 0, host: "server1:27017"}, {_id: 1, host: "server2:27017"}, {_id: 2, host: "server3:27017", arbiterOnly: true}]}). После настройки, при падении primary-узла (симуляция), secondary автоматически становится primary за 5-10 секунд (согласно документации MongoDB — https://www.mongodb.com/docs/manual/replication/).

7. Промт: «Оптимизация использования памяти в Redis»

Для чего: Снижение потребления RAM при большом количестве ключей.

Промт:

Redis-сервер использует [ЧИСЛО] ГБ RAM из [ЧИСЛО] доступных. Количество ключей — [ЧИСЛО]. Типы данных: [СПИСОК]. Политика eviction — [ТЕКУЩАЯ]. Предложи оптимизации: использование Intset, ZipList, переключение на HASHSET вместо отдельных ключей, настройка maxmemory-policy (allkeys-lru, volatile-ttl). Напиши команды redis-cli для проверки размера ключей и применения изменений.

Пример использования:

Сервер использует 12 ГБ из 16 ГБ, 10 млн ключей типа STRING. Промт предложит объединить их в HASH (например, user:{id} с полями), что сократит overhead с 50 байт на ключ до 10 байт. Политика eviction — allkeys-lru. Результат: память снизилась до 6 ГБ.

8. Промт: «Создание миграции в PostgreSQL с помощью Liquibase»

Для чего: Генерация changelog-файла для версионирования схемы.

Промт:

Мне нужно создать миграцию для PostgreSQL с помощью Liquibase. Изменения: 1) добавить таблицу [ИМЯ] с колонками [СПЕЦИФИКАЦИЯ], 2) создать уникальный индекс на [КОЛОНКА], 3) добавить внешний ключ на [ТАБЛИЦА.КОЛОНКА]. Напиши XML-формат changelog (формат Liquibase 4.x) с корректными changeset-ами, включая rollback. Учти, что таблица уже может существовать — добавь precondition.

Пример использования:

Changelog создаёт таблицу products с колонками id, name, price, индекс на name, внешний ключ на categories.id. Precondition: sqlCheck на существование таблицы categories. После применения, rollback корректно удаляет только добавленные объекты.

9. Промт: «Мониторинг производительности Redis с помощью RedisInsight»

Для чего: Настройка дашборда для отслеживания ключевых метрик.

Промт:

Я использую RedisInsight для мониторинга Redis-кластера из 3 нод. Хочу настроить дашборд с метриками: hit ratio, memory fragmentation, evicted keys per second, latency (p99). Дай инструкцию: какие команды INFO использовать, как добавить алерты (например, при memory_fragmentation_ratio > 1.5). Напиши пример конфигурации для Prometheus + Grafana, если нужно.

Пример использования:

Промт даст: INFO stats для hit ratio (keyspace_hits / (keyspace_hits + keyspace_misses)), INFO memory для fragmentation. В Grafana: панель с запросом irate(redis_keyspace_hits_total[5m]) / (irate(redis_keyspace_hits_total[5m]) + irate(redis_keyspace_misses_total[5m])). Алерт при fragmentation > 1.5. Результат: команда начала замечать утечки памяти до того, как они становятся критическими.

10. Промт: «Поиск и удаление дубликатов в MongoDB»

Для чего: Очистка коллекции от повторяющихся документов.

Промт:

В коллекции MongoDB [ИМЯ_КОЛЛЕКЦИИ] есть дубликаты по полю [ПОЛЕ]. Размер — [ЧИСЛО] документов. Напиши агрегационный пайплайн, который: 1) находит дубликаты, 2) удаляет все, кроме одного (с наименьшим _id). Дай два варианта: для небольших коллекций (используя deleteMany) и для больших (создание временной коллекции). Добавь команды для проверки результатов.

Пример использования:

Коллекция users с дубликатами по email. Пайплайн: db.users.aggregate([{$group: {_id: "$email", ids: {$addToSet: "$_id"}, count: {$sum: 1}}}, {$match: {count: {$gt: 1}}}, {$project: {ids: {$slice: ["$ids", 1, {$size: "$ids"}]}}}]). Для 50 000 дубликатов удаление заняло 2 секунды.

Заключение

Эти 10 промтов охватывают ключевые сценарии работы с PostgreSQL, MongoDB и Redis: от оптимизации запросов до миграций и мониторинга. Используйте их как отправную точку для автоматизации рутинных задач и углубления знаний. Помните, что каждая база данных имеет свои особенности — всегда тестируйте промты на копии данных. А если вы хотите систематизировать навыки работы с AI-инструментами для баз данных, изучите документацию и официальные руководства: PostgreSQL (https://www.postgresql.org/docs/), MongoDB (https://www.mongodb.com/docs/), Redis (https://redis.io/docs/latest/). Практикуйтесь, и ваши запросы станут не только быстрее, но и надёжнее.

← Все статьи

Комментарии

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

Rust — системное программирование: как AI-обучение на Asibiont помогает освоить язык без GC и создать CLI-инструменты

21 июля 2026

Интеграция Google Ads с AI: Автоматизация рекламных кампаний без кода с ASI Biont

21 июля 2026

Великий крах Steam Deck 2026: как новое ценообразование обрушило спрос на 80%

21 июля 2026

Промышленные ПК нового поколения: как MSI Industrial переопределяет стандарты автоматизации

21 июля 2026

Meta Ads интеграция с AI-агентом: как ASI Biont автоматизирует управление рекламой в 2026 году

21 июля 2026

Овладейте своим разумом: как курс «Навыки обучения и техники запоминания» с ИИ-тьютором повышает эффективность обучения на 50%

21 июля 2026

Как AI-агент ASI Biont автоматизирует Hetzner: деплой, мониторинг и управление серверами без кода

21 июля 2026

Интеграция Amplitude с AI-агентом: автоматизация продуктовой аналитики без кода

21 июля 2026

12 промтов для генерации JavaScript и TypeScript кода: от React до Node.js

21 июля 2026