Изучаем sql



Pdf көрінісі
бет220/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   216   217   218   219   220   221   222   223   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

ALTER TABLE account
> ADD INDEX acc_bal_idx (cust_id, avail_balance);
Query OK, 24 rows affected (0.03 sec)
Records: 24 Duplicates: 0 Warnings: 0
Теперь, имея этот индекс, посмотрим, как оптимизатор будет обраба
тывать тот же запрос:
mysql> 
EXPLAIN SELECT cust_id, SUM(avail_balance) tot_bal
> FROM account
> WHERE cust_id IN (1, 5, 9, 11)
> GROUP BY cust_id \G
*************************** 1. row ***************************


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выражение
или настроить ресурсы БД, или сделать и то, и другое. Оптими
зация – тонкий вопрос, поэтому настоятельно рекомендую про
читать руководство по оптимизации для используемого сервера
или найти хорошую книгу по этой теме, чтобы увидеть все воз
можные подходы к оптимизации для конкретного сервера.


Достарыңызбен бөлісу:
1   ...   216   217   218   219   220   221   222   223   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет