Ошибка No index used in query/prepared statement
При report_mode = MYSQLI_REPORT_ALL; и обычном запросе (select * from ...) вылетает ошибка.
No index used in query/prepared statement
Решение переключить report_mode, а так же вопрос ...'No index used in query/prepared statement' видел. Вопрос в том почему она появляется? Ведь поле с первичным ключом содержит индекс или я ошибаюсь? Как можно исправить эту ошибку? (не трогая rep_mod)
Ответы (1 шт):
вылетает ошибка.
No index used in query/prepared statement
Это:
- Не ошибка
- Означает не то, что индексов нет, а то, что при выполнении запроса сервер их не использует, сканируя таблицу.
Не-использование индексов при выполнении запроса - в общем вполне штатное событие. Возможно, подходящего (или вообще) индекса нет. Но возможно, что использование индекса менее эффективно, чем прямое сканирование таблицы (в среднем если избирательность вторичного индекса хуже 5-7% - это именно так).
Если это событие интерпретируется PHP именно как ошибка (с визгами и прерыванием исполнения) - то этот состояние сродни багу. На каждый запрос индексов не наделаешь...