> Как проверить использование индексов и построение плана выполнения запроса в базе данных? (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- фильтрация без индекса).
Для более детального анализа включите профилирование:
SQLSET profiling = 1;-- выполните запросSHOW PROFILE;
В PHP можно также использовать логирование медленных запросов MySQL (slow_query_log) и инструменты вроде EXPLAIN FORMAT=JSON для машинного разбора. Регулярно проверяйте планы для сложных запросов, особенно при JOIN и ORDER BY - отсутствие индексов часто видно по Using filesort или Using temporary в Extra.
> Похожие задачи по PHP
Какой базовый принцип безопасности при работе с пользовательскими данными
Какие угрозы безопасности существуют при работе с данными в SQL
Какие минусы использования магических методов в PHP
Для чего нужна иммутабельность
> Похожие задачи по backend
Какой базовый принцип безопасности при работе с пользовательскими данными
Какие угрозы безопасности существуют при работе с данными в SQL
Какие минусы использования магических методов в PHP
Для чего нужна иммутабельность
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью