Учебно-практическое пособие москва 2017 ббк


CREATE INDEX nulls_ind ON nulls ( num )



Pdf көрінісі
бет240/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   235   236   237   238   239   240   241   242   243
Байланысты:
Язык SQL. Базовый курс

CREATE INDEX nulls_ind ON nulls ( num );
CREATE INDEX
Добавим в таблицу одну строку, содержащую значение NULL в индексируемом
столбце:
INSERT INTO nulls VALUES ( null, 'TEXT' );
INSERT 0 1
Теперь посмотрим, будет ли использоваться индекс в следующем запросе:
251


EXPLAIN
SELECT * FROM nulls ORDER BY num;
Да, индекс используется.
QUERY PLAN
----------------------------------------------------------------
Index Scan using nulls_ind on nulls (cost=0.42..5852.42 rows=200000
width=14)
,

(1 строка)
Вы можете убедиться, что строка со значением NULL окажется в выводе самой
последней. Поскольку в нашей таблице очень много строк, воспользуемся пред-
ложением OFFSET:
SELECT * FROM nulls ORDER BY num OFFSET 199995;
num
|
txt
--------+------------
199996 | TEXT199996
199997 | TEXT199997
199998 | TEXT199998
199999 | TEXT199999
200000 | TEXT200000
| TEXT
(6 строк)
Модифицируем запрос, явно указав, что значения NULL должны располагаться
в самом начале выборки, и посмотрим, будет ли использоваться индекс теперь.
EXPLAIN
SELECT * FROM nulls ORDER BY num NULLS FIRST;
Теперь индекс не используется. Вместо этого выполняется последовательное
сканирование таблицы и сортировка выбранных строк.
QUERY PLAN
--------------------------------------------------------------------
Sort (cost=24110.14..24610.14 rows=200000 width=14)
Sort Key: num NULLS FIRST
-> Seq Scan on nulls (cost=0.00..3081.00 rows=200000 width=14)
(3 строки)
Задание 1.
Ниже приведена модифицированная команды выборки из таблицы
nulls. Не выполняя эту команду, попытайтесь ответить, будет ли использовать-
ся созданный нами индекс при выполнении такой выборки, а затем проверьте
вашу гипотезу на практике.


Достарыңызбен бөлісу:
1   ...   235   236   237   238   239   240   241   242   243




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

    Басты бет