Встречается на собеседованиях • сегодня

Как понять что нужно использовать индекс в БД

Индексы в БД ускоряют поиск, но замедляют вставку и обновление. Их стоит добавлять, если:

  1. Часто выполняются запросы с WHERE, JOIN или ORDER BY по определенным полям.
  2. Таблица большая, а выборки возвращают мало строк (высокая селективность).
  3. Поле используется в условиях уникальности (UNIQUE, PRIMARY KEY).

Пример с SQLite:

python
import sqlite3

conn = sqlite3.connect('test.db')
cursor = conn.cursor()

# Создаем таблицу без индекса
cursor.execute("CREATE TABLE users (id INTEGER, name TEXT, email TEXT)")

# Добавляем индекс для ускорения поиска по email
cursor.execute("CREATE INDEX idx_email ON users(email)")

# Теперь поиск по email будет быстрее
cursor.execute("SELECT * FROM users WHERE email = ?", ('test@example.com',))

Не стоит индексировать:

  • Маленькие таблицы
  • Столбцы с низкой селективностью (например, булевы значения)
  • Столбцы, которые часто обновляются
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы