Как интерпретировать вывод MySQL EXPLAIN?
Я хочу выбрать содержание столбцаtext
от .entrytable
EXPLAIN SELECT text
FROM entrytable
WHERE user = 'username' &&
`status` = '1' && (
`status_spam_user` = 'no_spam'
|| (
`status_spam_user` = 'neutral' &&
`status_spam_system` = 'neutral'
)
)
ORDER BY datum DESC
LIMIT 6430 , 10
Таблица имеет три показателя:
index_user (пользователь)index_datum (датум)index_status_mit_spam (status, status_spam_user, status_spam_system)Результат EXPLAIN:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE entrytable ref index_user,index_status_mit_spam index_user 32 const 7800 Using where; Using filesort
Являетсяpossible_keys
индексы MySQL может захотеть использовать иkeys
индексы MySQL на самом деле использует?Почему индексindex_status_mit_spam
не используется? В запросе столбцы имеют тот же порядок, что и в индексе, ...Почему индексindex_datum
не используется для?ORDER BY
Как я могу оптимизировать свои табличные индексы или запрос? (Приведенный выше запрос требует до 3 секунд, имея около миллиона записей в таблице)