Изучаем sql


Рис. 13.2.  Пример битового индекса Индексы 247



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

Рис. 13.2.
 Пример битового индекса


Индексы
247
дой из 24 строк таблицы 
account
. Таким образом, если серверу делается
запрос на извлечение всех депозитных счетов денежного рынка (
prod
uct_cd
=
'MM'
), он просто находит все значения 
1
в битовой карте 
MM
и возвращает строки 7, 10 и 18. Если требуется найти несколько значе
ний, сервер также может комбинировать битовые карты. Например,
если пользователь хочет получить все депозитные счета денежного
рынка 
и
сберегательные счета (
product_cd
=
'MM'
или 
product_cd
=
'SAV'
),
сервер может осуществить для битовых карт 
MM
и 
SAV
операцию OR
(ИЛИ) и возвратит строки 2, 5, 7, 9, 10, 16 и 18.
Битовые индексы – милое компактное решение по индексации данных
с малым кардинальным числом. Однако эта стратегия не годится, если
число хранящихся в столбце значений слишком велико по сравнению
с числом строк (в таком случае говорят о данных с 
большим кардиналь
ным числом 
(
highcardinality
)), потому что серверу пришлось бы об
служивать слишком много битовых карт. Например, не следует созда
вать битовый индекс для столбца первичного ключа, поскольку он яв
ляется примером максимально возможного количества элементов (но
вое значение для каждой строки).
Пользователи Oracle могут формировать битовые индексы, просто до
бавляя ключевое слово 
bitmap
в выражение 
create
index
:
CREATE BITMAP INDEX acc_prod_idx ON account (product_cd);
Битовые индексы широко используются в информационных хранили
щах, где обычно индексируются большие объемы данных для столбцов,
содержащих относительно небольшое количество значений (например,
квартальные отчеты, географические регионы, продукты, продавцы).


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




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

    Басты бет