Как индексировать столбец в PostgreSQL?

PostgreSQL Generate База данных

База данных PostgreSQL в частности или любая другая база данных в целом может содержать несколько таблиц. Эти таблицы состоят из разных столбцов или атрибутов, по которым хранятся разные строки или записи. Таким образом, данные сохраняются в базе данных. Индексируя столбец в PostgreSQL, мы, по сути, имеем в виду создание структуры данных, с помощью которой мы можем гораздо более эффективно ссылаться на значения этого столбца, вместо того, чтобы просматривать все значения этого столбца вручную. В этой статье мы сначала обсудим необходимость индексации столбца в PostgreSQL в Windows 10, а затем расскажем, как это сделать.

Необходимость индексирования столбца в PostgreSQL в Windows 10

Мы уже упоминали, что индексация столбца делает процесс поиска в этом столбце более быстрым и эффективным. Однако, помимо этого, мы рассмотрим здесь очень простой пример, который обосновывает необходимость индексации столбца в таблице в PostgreSQL.

Предположим, у нас есть таблица с названием «сотрудник». В этой таблице есть два разных столбца, а именно «Имя» и «Номер», которые соответствуют имени и номеру сотрудника соответственно. Также в этой таблице содержится 1000 записей о разных сотрудниках. Теперь мы хотим выполнить запрос, который вернет запись с конкретным номером сотрудника.

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

Читайте также:  Как создать таблицу в SQLite с помощью оператора «if not exists»?

Поэтому мы можем попробовать проиндексировать столбец «Число», чтобы вместо последовательного поиска всего столбца можно было очень эффективно выполнять поиск по указанному номеру в запросе. Однако этот вид индексации столбцов не подходит для очень маленьких таблиц, т. Е. Таблиц с несколькими записями, потому что это только увеличивает потребление ресурсов.

Метод индексации столбца в PostgreSQL в Windows 10

Если вы хотите проиндексировать любой желаемый столбец таблицы в базе данных PostgreSQL в Windows 10, вам придется выполнить пошаговую процедуру, описанную ниже:

Шаг 1: Запуск командной строки Windows 10

Мы получим доступ к среде PostgreSQL через командную строку Windows 10, для которой нам нужно сначала запустить ее. Вы можете увидеть следующее изображение, чтобы узнать, как запустить командную строку Windows 10.

Мы получим доступ к среде PostgreSQL через командную строку Windows 10

Шаг 2: Вход в среду PostgreSQL через командную строку Windows 10

После открытия командной строки вы можете войти в среду PostgreSQL, выполнив команду, показанную ниже:

> psql –U postgres

После выполнения этой команды вам будет предложено ввести пароль для указанного пользователя, как показано на следующем изображении:

Как только вы предоставите этот пароль, вы войдете в среду PostgreSQL через командную строку Windows 10.

Шаг 3: Создайте новую таблицу в PostgreSQL в Windows 10

Теперь мы создадим новую таблицу, чтобы мы могли проиндексировать один из ее столбцов в Windows 10. Таблицу в PostgreSQL можно создать с помощью запроса, показанного ниже:

CREATE TABLE employee (emp_ID serial PRIMARY KEY, emp_Name VARCHAR (255) NOT NULL, emp_Number VARCHAR (255) NOT NULL);

Этот запрос создаст таблицу с именем «employee» в текущей базе данных PostgreSQL с тремя столбцами, а именно «emp_ID, emp_Name и emp_Number» соответственно.

Успешное выполнение этого запроса будет подтверждено, как только мы получим ответ «CREATE TABLE» на нашей консоли, как показано на следующем изображении:

Шаг 4: Проверка, существует ли недавно созданная таблица в вашей текущей базе данных или нет

Когда наша новая таблица создана, мы можем проверить ее существование, выполнив команду, показанную ниже:

# \dt

Эта команда попытается отобразить все таблицы, существующие в текущей базе данных. В списке этих таблиц вы также сможете увидеть нашу недавно созданную таблицу «сотрудников», как показано на следующем изображении:

Эта команда попытается отобразить все таблицы, существующие в текущей базе данных

Шаг 5: Вставка некоторых записей в только что созданную таблицу

Теперь мы вставим несколько примеров записей в эту недавно созданную таблицу. Запись в эту таблицу можно добавить с помощью запроса, показанного ниже:

insert into employee values(1,’Aqsa’,’12345);

Когда эта запись будет успешно добавлена ​​в таблицу «employee», вы увидите следующее сообщение об успешном завершении на вашей консоли:

Когда эта запись будет успешно добавлена ​​в таблицу «employee

Таким же образом мы добавим несколько записей в таблицу «employee», как показано на изображении ниже:

Таким же образом мы добавим несколько записей в таблицу

Шаг 6: Просмотр недавно заполненной таблицы

После заполнения нашей таблицы «сотрудников» мы можем просмотреть ее, выполнив следующий добавленный запрос:

select * from employee;

Этот запрос отобразит все записи таблицы «служащих» на консоли, как показано на изображении ниже:

Этот запрос отобразит все записи таблицы «служащих» на консоли

Шаг 7: Выполнение тестового запроса к вновь созданной таблице

Теперь мы запустим тестовый запрос к вновь созданной таблице для отображения записи с определенным номером. Этот запрос выглядит следующим образом:

select * from employee where emp_Number=24943’;

Этот запрос мгновенно отобразит выбранную запись, как показано на изображении ниже:

Этот запрос мгновенно отобразит выбранную запись, как показано на изображении ниже

Шаг 8: просмотрите план запроса для только что выполненного запроса

Хотя вышеупомянутый запрос был выполнен успешно, однако для вывода желаемого результата на консоль. Весь столбец emp_Number таблицы «employee» должен был быть просмотрен последовательно. Вы можете проверить это, выполнив следующий запрос, чтобы отобразить план запроса:

explain select * from employee where emp_Number=24943’;

На изображении ниже видно, что указанный запрос был выполнен путем последовательного поиска в столбце emp_Number таблицы «employee». Последовательный поиск не подходит для таблиц с большим количеством записей. Для решения этой проблемы мы попытаемся проиндексировать столбец emp_Number, выполнив следующий шаг.

Шаг 9: Создание индекса для столбца созданной таблицы

Чтобы создать индекс для столбца таблицы в PostgreSQL в Windows 10, вы можете выполнить следующий запрос:

CREATE INDEX index_emp_Number ON employee(emp_Number);

Этот запрос создаст индекс с именем «index_emp_Number» для столбца «emp_Number» таблицы «employee». Успешное выполнение этого запроса приведет к сообщению об успешном выполнении, показанному ниже:

Этот запрос создаст индекс с именем

Шаг 10: Список всех индексов желаемой таблицы

Теперь, чтобы проверить, был ли указанный индекс создан или нет, вы можете выполнить следующую команду:

# \d employee

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

Результат, показанный на изображении ниже

Удаление индекса из столбца в PostgreSQL в Windows 10

Если вы хотите удалить индекс из столбца таблицы в PostgreSQL в Windows 10, вы можете выполнить следующий запрос:

DROP INDEX index_emp_Number;

Когда указанный индекс будет успешно удален, вы получите ответ DROP INDEX на консоли, как показано на изображении ниже:

Заключение

Прочитав все шаги метода, описанного в этой статье, вы сможете очень быстро понять, как индексирование столбцов работает в PostgreSQL в Windows 10. Узнав об этом, вы сможете индексировать столько столбцов ваших таблиц в PostgreSQL. как пожелаете.

Оцените статью
bestprogrammer.ru
Добавить комментарий