Учебное пособие Санкт-Петербург «бхв-петербург»



Pdf көрінісі
бет190/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   186   187   188   189   190   191   192   193   ...   256
sql osnovi yazika

SELECT count( * )
FROM tickets
WHERE passenger_name = 'IVAN IVANOV';
count
-------
200
(1 строка)
Время: 373,232 мс
Показатели времени, полученные на вашем компьютере, конечно, будут отличаться
от значений, приведенных в книге, и — возможно — значительно. Эти показатели
нужно рассматривать лишь как качественные ориентиры.
Создадим индекс по столбцу passenger_name, при этом никакого суффикса в имени
индекса использовать не будем, поскольку его наличие не является обязательным:
CREATE INDEX passenger_name
ON tickets ( passenger_name );
CREATE INDEX
Время: 4023,408 мс
Посмотрим описание нового индекса:
\d tickets
...
Индексы:
...
"passenger_name" btree (passenger_name)
Теперь выполним ту же выборку из таблицы tickets.
244


8.1. Общая информация
SELECT count( * )
FROM tickets
WHERE passenger_name = 'IVAN IVANOV';
count
-------
200
(1 строка)
Время: 17,660 мс
Вы видите, что время выполнения выборки при наличии индекса оказалось значи-
тельно меньше.
Просмотреть список всех индексов в текущей базе данных можно командой
\di
или
\di+
Для удаления индекса используется команда:
DROP INDEX имя-индекса;
Давайте удалим созданный нами индекс для таблицы tickets:
DROP INDEX passenger_name;
DROP INDEX
Когда индекс уже создан, о его поддержании в актуальном состоянии заботится СУБД.
Конечно, следует учитывать, что это требует от СУБД затрат ресурсов и времени. Ин-
декс, созданный по столбцу, участвующему в соединении двух таблиц, может позво-
лить ускорить процесс выборки записей из таблиц. При выборке записей в отсорти-
рованном порядке индекс также может помочь, если сортировка выполняется по тем
столбцам, по которым индекс создан.
245


Глава 8. Индексы


Достарыңызбен бөлісу:
1   ...   186   187   188   189   190   191   192   193   ...   256




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

    Басты бет