PostgreSQL

Как создавать индексы в PostgreSQL

Как создавать индексы в PostgreSQL

Индексы - это специализированные поисковые таблицы, используемые механизмами поиска в банках данных для ускорения результатов запросов. Индекс - это ссылка на информацию в таблице. Например, если имена в контактной книге не отсортированы по алфавиту, вам придется спускаться по каждой строке и искать каждое имя, прежде чем вы достигнете определенного номера телефона, который ищете. Индекс ускоряет выполнение команд SELECT и фраз WHERE, выполняя ввод данных в командах UPDATE и INSERT. Независимо от того, вставлены или удалены индексы, это не влияет на информацию, содержащуюся в таблице. Индексы могут быть особенными, так же как ограничение UNIQUE помогает избежать записей реплик в поле или наборе полей, для которых существует индекс.

Общий синтаксис

Для создания индексов используется следующий общий синтаксис.

>> СОЗДАТЬ ИНДЕКС имя_индекса НА имя_таблицы (имя_столбца);

Чтобы начать работу с индексами, откройте pgAdmin Postgresql на панели приложения. Вы найдете вариант «Серверы», отображаемый ниже. Щелкните этот параметр правой кнопкой мыши и подключите его к базе данных.

Как видите, база данных «Тест» указана в опции «Базы данных». Если у вас его нет, щелкните правой кнопкой мыши «Базы данных», перейдите к опции «Создать» и назовите базу данных в соответствии с вашими предпочтениями.

Разверните опцию «Схемы», и вы найдете там перечисленную опцию «Таблицы». Если у вас его нет, щелкните его правой кнопкой мыши, перейдите к «Создать» и выберите параметр «Таблица», чтобы создать новую таблицу. Поскольку мы уже создали таблицу emp, вы можете увидеть ее в списке.

Попробуйте выполнить запрос SELECT в редакторе запросов, чтобы получить записи таблицы emp, как показано ниже.

>> ВЫБРАТЬ * ИЗ общедоступных.emp ORDER BY «id» ASC;

Следующие данные будут в таблице emp.

Создание одностолбцовых индексов

Разверните таблицу emp, чтобы найти различные категории, e.грамм., Столбцы, ограничения, индексы и т. Д. Щелкните правой кнопкой мыши «Индексы», перейдите к опции «Создать» и нажмите «Индекс», чтобы создать новый индекс.

Создайте индекс для данной таблицы 'emp' или конечного отображения, используя диалоговое окно Index. Здесь есть две вкладки: "Общие" и "Определение".'На вкладке' Общие 'вставьте конкретный заголовок для нового индекса в поле' Имя '. Выберите «табличное пространство», в котором будет храниться новый индекс, используя раскрывающийся список рядом с «Табличное пространство».'Как и в области' Комментарий ', сделайте здесь индексные комментарии. Чтобы начать этот процесс, перейдите на вкладку "Определение".

Здесь укажите «Метод доступа», выбрав тип индекса. После этого, чтобы создать свой индекс как «Уникальный», там есть несколько других вариантов. В области «Столбцы» нажмите на знак «+» и добавьте имена столбцов, которые будут использоваться для индексации. Как видите, мы применили индексирование только к столбцу "Телефон". Для начала выберите раздел SQL.

На вкладке SQL отображается команда SQL, созданная вашими входными данными в диалоговом окне "Индекс". Нажмите кнопку "Сохранить", чтобы создать указатель.

Опять же, перейдите к опции «Таблицы» и перейдите к таблице «emp». Обновите опцию «Индексы», и вы найдете в ней только что созданный индекс «index_on_phone».

Теперь мы выполним команду EXPLAIN SELECT, чтобы проверить результаты для индексов с предложением WHERE. Это приведет к следующему выводу, в котором говорится: «Seq Scan on emp.'Вы можете задаться вопросом, почему это произошло, когда вы используете индексы.

Причина: планировщик Postgres может отказаться от индекса по разным причинам. Стратег большую часть времени принимает оптимальные решения, даже если причины не всегда ясны. Это нормально, если поиск по индексу используется в некоторых запросах, но не во всех. Записи, возвращаемые из любой таблицы, могут отличаться в зависимости от фиксированных значений, возвращаемых запросом. Из-за этого сканирование последовательности почти всегда происходит быстрее, чем сканирование индекса, что указывает на то, что, возможно, планировщик запросов был прав, определив, что стоимость выполнения запроса таким образом снижается.

Создать несколько индексов столбцов

Чтобы создать индексы с несколькими столбцами, откройте оболочку командной строки и рассмотрите следующую таблицу «ученик», чтобы начать работу с индексами с несколькими столбцами.

>> ВЫБРАТЬ * ОТ студента;

Напишите в нем следующий запрос CREATE INDEX. Этот запрос создаст индекс с именем 'new_index' в столбцах 'sname' и 'age' таблицы 'student'.

>> CREATE INDEX new_index ON Student (имя, возраст);

Теперь мы перечислим свойства и атрибуты только что созданного индекса new_index с помощью команды \ d. Как вы можете видеть на картинке, это индекс типа btree, который был применен к столбцам sname и age.

>> \ d новый_индекс;

Создать УНИКАЛЬНЫЙ индекс

Чтобы создать уникальный индекс, предположим, что следующая таблица emp.

>> ВЫБРАТЬ * ИЗ emp;

Выполните запрос CREATE UNIQUE INDEX в оболочке, за которым следует имя индекса empind в столбце name таблицы emp. В выходных данных вы можете видеть, что уникальный индекс не может быть применен к столбцу с повторяющимися значениями 'name'.

>> СОЗДАТЬ уникальный ИНДЕКС empind ON emp (name);

Обязательно применяйте уникальный индекс только к столбцам, которые не содержат дубликатов. Для таблицы emp вы можете предположить, что только столбец id содержит уникальные значения. Итак, мы применим к нему уникальный индекс.

>> СОЗДАТЬ УНИКАЛЬНЫЙ ИНДЕКС empind ON emp (id);

Ниже приведены атрибуты уникального индекса.

>> \ d empid;

Отбросить индекс

Оператор DROP используется для удаления индекса из таблицы.

>> DROP INDEX empind;

Заключение

Хотя индексы предназначены для повышения эффективности баз данных, в некоторых случаях использовать индекс невозможно. При использовании индекса необходимо учитывать следующие правила:

Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...
Обзор беспроводной мыши Microsoft Sculpt Touch
Я недавно прочитал о Microsoft Sculpt Touch беспроводная мышь и решил ее купить. Побывав некоторое время, я решил поделиться своим опытом с ним. Эта б...