Встречается на собеседованиях • сегодня
Как с помощью EXPLAIN определить необходимость добавления индекса в БД
EXPLAIN показывает план выполнения запроса. Если в выводе виден type: ALL или rows с большим числом, значит MySQL выполняет full table scan - хороший кандидат для индекса.
Пример:
sql
EXPLAIN SELECT * FROM users WHERE email = 'test@example.com';Если вывод содержит:
text
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | users | ALL | NULL | NULL | NULL | NULL | 1000 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+Здесь type: ALL и rows: 1000 - явный признак, что нужен индекс:
sql
CREATE INDEX idx_email ON users(email);
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы