Индексы и анализ
Создадим таблицу для хранения двух текстовых строк.
Напишем функцию для получения случайного целого числа.
Напишем функцию для получения случайной текстовой строки.
Напишем функцию, которая добавляет определённое количество записей в таблицу.
По умолчанию создаётся один индекс для ключевого поля счётчика.
Поиск строк без использования индексов
Для заполнения таблицы данными вызываем процедуру.
Проанализируем запрос на выборку записи, где поле t2 имеет определённое значение.
Проанализируем запрос на выборку, где поля t2 и t3 имеют определённые значения.
Использование btree индексов для поиска и сортировки строк
Удаляем таблицу.
Создаём таблицу заново.
Создаём два btree индекса.
Заполняем пустую таблицу данными.
Проанализируем запрос на выборку, где поле t2 имеет определённое значение.
Проанализируем запрос на выборку, где поля t2 и t3 имеют определённые значения.
Проанализируем запрос на вывод первых десяти записей после сортировки по полю t2.
В результате анализа выясняется, что поиск и сортировка данных с использованием индексов работает гораздо быстрее.
Удаление индексов
Удаляем созданные индексы
Функциональный индекс
Создадим таблицу для хранения строк.
Создадим функциональный индекс для поля s2.
Индекс использует функцию перевода строки в нижний регистр.
Заполним таблицу строками, содержащими большие и маленькие буквы.
Выполним запрос, который ищет запись с определённым значением поля s2 без использования функции LOWER.
Данный запрос будет работать медленно, так как он будет перебирать все строки таблицы.
Теперь выполним запрос, который ищет запись по полю s2 c использованием функции LOWER.
Данный запрос будет работать быстро, так как он использует функциональный индекс.
Использование функционального индекса с собственными функциями
Напишем собственную функцию, возвращающую длину строки.
Слово IMMUTABLE было добавлено, чтобы было можно использовать данную функцию для индекса.
Создадим таблицу для хранения строк.
Создадим функциональный индекс для поля x2.
Индекс использует функцию get_number.
Заполним таблицу записями.
Напишем запрос на получение записей, у которых длина строки в поле x2 равняется восьми.
Данный запрос будет работать быстро, так как используется функциональный индекс.
Last updated
Was this helpful?