Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Почему поиск в B-tree работает быстрее полного перебора данных?
Потому что B-tree отсеивает ненужные данные, двигаясь по дереву, а не проверяя каждую строку таблицы.
Если в запросе Seq Scan по полю с датой, что это значит? Какой индекс накинуть на дату и почему? (B-tree vs Hash).
Seq Scan (sequential scan) means что база данных читает всю таблицу для выполнения запроса, что медленно для больших таблиц. Для поля с датой следует создать B-tree индекс, потому что B-tree поддерживает range queries (например, поиск по периоду), while Hash индекс only supports equality checks.
Какая сложность поиска в B-tree и Hash-индексе (асимптотическая и в среднем)?
Поиск в B-tree индексе имеет логарифмическую сложность O(log n), что эффективно для больших данных. Поиск в Hash индексе имеет постоянную сложность O(1) в среднем, но может деградировать до O(n) при коллизиях. B-tree лучше для диапазонных запросов, Hash — для точных совпадений.
Что такое деревья? Приведи пример использования (например, B-tree в Postgres).
Дерево — это иерархическая структура данных, состоящая из узлов, где каждый узел имеет родителя и ноль или более детей. Пример: B-tree используется в базах данных (например, Postgres) для индексации, так как он эффективен для хранения и поиска больших объемов данных на диске.
Почему поиск в B-tree работает быстрее полного перебора данных?
Поиск в B-дереве быстрее, потому что он использует принцип двоичного поиска на каждом уровне, что позволяет быстро отбрасывать большие части данных. Вместо проверки каждого элемента (как при переборе), алгоритм за несколько шагов принимает решение, в какую ветку двигаться дальше. Это значительно сокращает количество операций, особенно для больших объемов данных.
Чем B-tree отличается от бинарного дерева?
Как работает индекс в Postgres и чем отличается B-Tree от GIN?
Объясни разницу между индексами B-Tree, Hash и BRIN в Postgres. В каких случаях каждый оптимален?
Как B-tree индекс позволяет выполнять операции больше/меньше/равно — механизм поиска и извлечения диапазона значений?
В чём разница между B-Tree и Hash-индексом и почему Hash-индексы не поддерживают операции больше/меньше?
Рейтинг:
2
Сложность:
7
B-дерево и бинарное дерево решают одну задачу — эффективный поиск, но по-разному. Бинарное дерево имеет не более двух потомков у каждого узла, а B-дерево — много. B-дерево всегда сбалансировано, что гарантирует быстрый поиск, а бинарное может выродиться в список. Главное же отличие в том, что B-дерево оптимизировано для хранения на диске и работы с большими данными.
Рейтинг:
4
Сложность:
7
B-Tree — индекс общего назначения для точных сравнений и диапазонов. GIN — индекс для полнотекстового поиска и массивов. Выбор индекса зависит от типа запросов.
Рейтинг:
5
Сложность:
7
B-Tree — универсальный индекс для диапазонов и сортировки.
Hash — быстрый поиск по равенству, но ограниченный.
BRIN — очень компактный индекс для больших таблиц с упорядоченными данными.
Рейтинг:
3
Сложность:
7
B-tree индекс организует данные в сбалансированное дерево, где каждый узел содержит отсортированные ключи и указатели на дочерние узлы. Для операций "равно" индекс выполняет бинарный поиск от корня к листьям. Для операций "больше/меньше" и диапазонов индекс находит начальную точку диапазона и затем последовательно читает листовые узлы в отсортированном порядке. Это позволяет эффективно находить все значения в заданном диапазоне без полного сканирования таблицы.
Рейтинг:
5
Сложность:
7
B-Tree индекс хранит данные в отсортированном виде, поэтому поддерживает диапазонные запросы. Hash-индекс использует хэш-функцию и не хранит порядок значений. Из-за этого он подходит только для точного поиска по равенству. Операции больше или меньше требуют упорядоченности, которой у Hash-индекса нет. Поэтому такие запросы он не поддерживает.
Рейтинг:
1
Сложность:
8
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
9
Рейтинг:
2
Сложность:
7