Типы и constraints 😕 база
Зачем в таблице нужен PRIMARY KEY?
Уникальный идентификатор строки: гарантирует, что запись можно однозначно найти, и защищает от дублей.
Типы и constraints 😕 база
Что делает NOT NULL?
Запрещает пустое значение в столбце — база сама не даст вставить строку без обязательного поля.
Типы и constraints 🤓 уверенно
Что такое FOREIGN KEY и от чего он защищает?
Ссылка на строку другой таблицы: не даст создать заказ с несуществующим user_id и удалить пользователя, у которого есть заказы.
Типы и constraints 🤓 уверенно
Чем VARCHAR отличается от TEXT в PostgreSQL?
Практически ничем по производительности; VARCHAR(n) лишь добавляет ограничение длины. Часто используют TEXT.
Типы и constraints 🧐 глубоко
Какие преимущества у типа JSONB и когда он уместен?
Типы и constraints 🧐 глубоко
Чем SERIAL отличается от IDENTITY и UUID для первичного ключа?
Типы и constraints 😎 про
Как выбрать между нормализацией и денормализацией схемы?
Типы и constraints 😎 про
Что такое partial index и exclusion constraint?
Миграции 😕 база
Что такое миграция базы данных?
Файл с одним изменением структуры (создать таблицу, добавить столбец), который версионируется в Git вместе с кодом.
Миграции 😕 база
Зачем нужны миграции, если можно менять таблицы вручную?
Ручные изменения не повторяемы: базы на локали, тесте и проде быстро расходятся. Миграции применяются автоматически и одинаково везде.
Миграции 🤓 уверенно
Как Flyway понимает, какие миграции уже применены?
Хранит историю в служебной таблице flyway_schema_history и применяет только новые файлы по порядку версий.
Миграции 🤓 уверенно
Почему нельзя редактировать уже применённую миграцию?
На проде она уже выполнена и повторно не запустится — изменения файла туда не попадут. Нужна новая миграция с исправлением.
Миграции 🧐 глубоко
Как безопасно добавить NOT NULL столбец в большую таблицу под нагрузкой?
Миграции 🧐 глубоко
Как делать откат изменений, если бесплатный Flyway не поддерживает rollback?
Миграции 😎 про
Как совместить деплой новой версии кода и миграцию схемы без даунтайма?
Миграции 😎 про
Что такое expand-contract подход к изменению схемы?
Пулы соединений 😕 база
Зачем нужен пул соединений к базе?
Открывать соединение на каждый запрос дорого. Пул держит готовые соединения и выдаёт их по очереди.
Пулы соединений 😕 база
Какой пул используется в Spring Boot по умолчанию?
HikariCP — быстрый и лёгкий, настраивается автоматически.
Пулы соединений 🤓 уверенно
Что происходит, когда все соединения пула заняты?
Новые запросы ждут освобождения соединения; если ждать дольше connection timeout — получают ошибку.
Пулы соединений 🤓 уверенно
Что делает EXPLAIN?
Показывает план выполнения запроса: как база будет искать данные — по индексу или полным перебором таблицы.
Пулы соединений 🧐 глубоко
Как подобрать размер пула соединений и почему «больше» не значит «лучше»?
Пулы соединений 🧐 глубоко
Чем EXPLAIN ANALYZE отличается от EXPLAIN и в чём риск?
Пулы соединений 😎 про
Как диагностировать утечку соединений в приложении?
Пулы соединений 😎 про
Что такое репликация PostgreSQL и как читать с реплик из Spring?