Изучаем sql



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

Текстовые индексы
Если БД используется для хранения документов, может потребовать
ся обеспечить пользователям возможность выполнять поиск слов или
фраз в документах. Конечно, не хочется, чтобы сервер открывал каж
дый документ и просматривал его в поисках нужного текста при каж
дом запросе. Традиционные стратегии индексации в данном случае не
годятся. Чтобы справиться с этой ситуацией, MySQL и Oracle Database
включают для документов специальные механизмы индексации и по
иска. В SQL Server и MySQL есть так называемые индексы 
по всему
тексту 
(
fulltext
) (для MySQL индексы по всему тексту доступны толь
ко с механизмом хранения MyISAM). Oracle Database включает мощ
ный инструментарий 
Oracle Text
. Поиск по документам достаточно
специализирован, поэтому не будем приводить здесь пример, но я хо
тел хотя бы сообщить о такой возможности.
Использование индексов
Обычно сервер использует индексы для быстрого обнаружения место
положения интересующих строк в конкретной таблице. После этого


248
Глава 13. Индексы и ограничения
сервер просматривает ассоциированную таблицу и извлекает дополни
тельную информацию, запрашиваемую пользователем. Рассмотрим
следующий запрос:
mysql> 
SELECT emp_id, fname, lname
> FROM employee
> WHERE emp_id IN (1, 3, 9, 15, 22);
++++
| emp_id | fname | lname |
++++
| 1 | Michael | Smith |
| 3 | Robert | Tyler |
| 9 | Jane | Grossman |
| 15 | Frank | Portman |
++++
4 rows in set (0.00 sec)
Для этого запроса сервер может использовать в качестве индекса пер
вичный ключ для столбца 
emp_id
, чтобы найти местоположение сотруд
ников с ID 1, 3, 9, 15 и 22 в таблице 
employee
, и затем просмотреть каж
дую из пяти строк, чтобы извлечь значения столбцов имени и фамилии.
Однако если индекс содержит все, что необходимо для удовлетворения
запроса, серверу не надо просматривать ассоциированную таблицу.
Для иллюстрации давайте посмотрим на то, как обращается оптимиза
тор запросов с одним и тем же запросом при разных типах индексов.
Запрос, агрегирующий остатки на счетах для определенных клиентов,
выглядит так:
mysql> 


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




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

    Басты бет