2015-02-27 2 views
6

Я хочу знать разницу между« Использование условия индекса »и« Использование где; Использование индекса '. Я думаю, что оба метода используют индекс, чтобы получить первый набор записей результатов и фильтр, используя условие WHERE.MySQL - 'Использование условия индекса' vs 'Использование где; Использование индекса «

Q1. Какая разница?

Q2. Что лучше?

спасибо.

+0

с использованием индекса, когда ваше условие where покрывается индексированными столбцами, и ему потенциально не нужно сканировать всю таблицу. Использование условия индекса - это когда условие where содержит индексированный и неиндексированный столбец, и оптимизатор сначала разрешит индексированный столбец и будет искать строки в таблице для другого условия. Второй подход называется нажатием индекса. Но, конечно, запрос со всем индексом покрытия лучше. –

+0

@AbhikChakraborty Then 'Using where;' в 'Использование где; Использование индекса 'означает, что если условие покрывает индексированные столбцы и не сканирует таблицу? – chris

+0

Да, используя значение индекса, не делая проверку всей таблицы. Использование где все еще может выполняться сканирование таблицы в неиндексированном столбце, но оно будет использоваться, если есть какой-либо индексированный столбец в том случае, когда условие сначала больше похоже на использование условия индекса. –

ответ

3

Использование индекса состояния: где условие содержит индексированный и не индексированный столбец и оптимизатор будет первым разрешить индексированный столбец и будет искать строки в таблице для другого условия (индекс надавите)

Использование, где; Использование индекса: «Использование индекса» означает не выполнение сканирования всей таблицы. «Использование где» все еще может выполнять сканирование таблицы на неиндексированном столбце, но оно будет использоваться, если есть какой-либо индексированный столбец в том случае, когда условие в первую очередь похоже на использование условия индекса

Что лучше? 'Использование, где; Использование индекса 'было бы лучше, чем «Использовать условие индекса», если запрос имеет индекс, охватывающий все.

Смежные вопросы