250
Глава 13. Индексы и ограничения
id: 1
select_type: SIMPLE
table: account
type: range
possible_keys: acc_bal_idx
key: acc_bal_idx
key_len: 4
ref: NULL
rows: 8
Extra: Using where;
Using index
1 row in set (0.01 sec)
Сравнение двух планов выполнения дает следующие различия:
•
Вместо индекса
fk_a_cust_id
оптимизатор использует новый индекс
acc_bal_idx
.
•
Оптимизатор ускоряет свою работу,
поскольку теперь ему надо об
работать только восемь строк вместо 24.
•
Для обеспечения результатов запроса таблица
account
не нужна
(обозначена через
Using
index
в столбце
Extra
).
Следовательно, сервер может определить с
помощью индексов место
положение строк в ассоциированной таблице или использовать индекс
как таблицу, если он содержит все столбцы, необходимые для удовле
творения запроса.
Только что рассмотренный процесс – это
пример оптимизации
запроса. Оптимизация включает изучение SQLвыражения и ус
тановление доступных серверу ресурсов, необходимых для вы
полнения этого выражения. Чтобы
обеспечить более эффектив
ное выполнение выражения, можно изменить SQLвыражение
или настроить ресурсы БД, или сделать и то, и другое. Оптими
зация – тонкий вопрос, поэтому настоятельно рекомендую про
читать руководство по оптимизации
для используемого сервера
или найти хорошую книгу по этой теме, чтобы увидеть все воз
можные подходы к оптимизации для конкретного сервера.
Достарыңызбен бөлісу: