> Как проверить использование индексов и построение плана выполнения запроса в базе данных? (PHP)

Уровень: senior · Роль: backend · Язык: PHP · Категория: Технические вопросы

Компании: витринатв

Стек: PHP

> Пример ответа

Для проверки использования индексов и анализа плана выполнения запроса в PHP-приложениях (например, с MySQL) используйте EXPLAIN. Выполните запрос с префиксом EXPLAIN через PDO или mysqli:

PHP
$stmt = $pdo->query("EXPLAIN SELECT * FROM users WHERE email = 'test@example.com'");
$plan = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($plan);

В выводе обратите внимание на столбцы:

  • type - тип соединения (например, ALL - полное сканирование, ref или range - использование индекса).
  • key - какой индекс используется (если NULL - индекс не применяется).
  • rows - оценочное количество строк для проверки.
  • Extra - дополнительные сведения (например, Using index - покрывающий индекс, Using where - фильтрация без индекса).

Для более детального анализа включите профилирование:

SQL
SET profiling = 1;
-- выполните запрос
SHOW PROFILE;

В PHP можно также использовать логирование медленных запросов MySQL (slow_query_log) и инструменты вроде EXPLAIN FORMAT=JSON для машинного разбора. Регулярно проверяйте планы для сложных запросов, особенно при JOIN и ORDER BY - отсутствие индексов часто видно по Using filesort или Using temporary в Extra.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью