Видео с разбором вопросов по Базам Данных
ТОП вопросов на собеседовании по Базам Данных
Часть 1.
Практика из реальных собеседований (Q/A)
- Использовали ли
EXPLAIN/EXPLAIN ANALYZE?
- Да, для анализа и оптимизации SQL-запросов.
- Какие методы оптимизации запросов применяли?
- Разделение сложного SQL на этапы с временными таблицами.
- Выбор только необходимых колонок.
- Корректная дистрибуция/ключи join.
- Проверка плана выполнения.
- Контроль нежелательного
Nested Loopна больших объемах. - Актуализация статистики таблиц.
- Использовали ли оконные функции, CTE, аналитические функции?
- Да:
LAG, ранжирование, агрегирующие окна,CTE, процентили, медиана.
- Как проводили дедупликацию витрин?
- Для ClickHouse применялся
ReplacingMergeTree.
Вопросы по Базам Данных
- Для чего нужен ACID? Объясни своими словами понятия: Атомарность, Согласованность, Изоляция и Устойчивость.
- Какие существуют уровни Изоляции в сатндарте SQL?
- Что такое методология BASE и чем она отличается от ACID?
- Что такое и для чего нужен индекс в БД?
- Какие типы индексов существуют?
- Чем отличается кластеризованный индек от некластеризованного?
- Сколько у таблицы может быть кластеризованных индексов?
- Можно ли строить индекс по JSON полям?
- Чем отличается материализованное представление от нематериализованного?
- Можно ли читать данные из материализованного представления, когда выполняется команда REFRESH?
- Как устроена система транзакций в PostgreSQL?
- Что из себя представляет СТЕ?
- Какие виды баз данных ты знаешь?
- Чем отличаются колоночные БД от строковых?
- Для чего нужны схемы и табличные пространства?
- Для чего нужна репликация данных, какие виды существуют и примеры сценариев репликаций?
- Объясни CDC подход?
- Что такое партицирование таблиц, их виды и примеры применения использования?
- В каких случаях лучше использовать БД со строковым хранением, а в каких с колоночным?
- Влияет ли колоночное хранение на скорость доступа к данным в случаях чтения, удаления и изменения?
- За счет чего в стоковых БД мы можем быстрее обращаться к полному набору данных, в отличии от колоночных?
- Что такое B-tree индекс? Как он работает? Какая сложность данного алгоритма?
- Для чего используется шардирование и репликация?
- Шардирование ускоряет работу запросов?
- Какой тип данных вы выберете для хранения цен и почему:
FLOATилиDECIMAL? - Как обоснуете выбор между
UUIDиBigIntдляPK(Primary Key)?