REINDEX PostgreSQL

автоинкрементный первичный ключ PostgreSQL База данных

Как и многие команды базы данных PostgreSQL, команда REINDEX очень удобна, когда нужно обновить систему базы данных. Он создан для воссоздания уже созданного ИНДЕКС вашей базы данных. Могут возникнуть ситуации, когда возникают проблемы с данными вашей базы данных из-за программных и аппаратных проблем. Эти проблемы могут привести к тому, что в вашей базе данных появятся неверные данные, а представления не смогут получить необходимые записи. Настало время восстановить наши уже созданные представления, чтобы использовать их снова с помощью инструкции REINDEX. В этой статье будет рассмотрен метод обновления уже сделанных индексов в базе данных PostgreSQL.

Использование графического интерфейса PostgreSQL PgAdmin

Давайте начнем с нового экрана рабочего стола Windows 10. Убедитесь, что в вашей Windows 10 уже есть база данных PostgreSQL, полностью настроенная для ее использования. Чтобы открыть графический интерфейс базы данных PostgreSQL, коснитесь панели поиска Windows 10 в левом нижнем углу экрана рабочего стола. Напишите «pgAdmin», и приложение появится. Выберите pgAdmin 4, чтобы быстро открыть его. После выбора для нормального открытия потребуется до 20 секунд.

Для запуска потребуется ваш пароль Сервера базы данных, который вы добавили во время установки. Добавьте этот пароль и нажмите кнопку «ОК», чтобы продолжить его использование. С левой стороны вы увидите опцию «Серверы». Разверните его, чтобы увидеть базы данных. Разверните параметр базы данных и нажмите на базу данных, которую вы хотите использовать для этой реализации. Здесь мы использовали слово «аксаясин». Щелкните значок инструмента запросов, чтобы открыть область запросов для базы данных, т. е. «aqsayasin».

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

Читайте также:  Как изменить адрес привязки (Bind Address) MySQL?

Вы можете увидеть имена индексов уже здес

Вы можете увидеть имена индексов уже здесь, в 3-м столбце слева от приведенного выше вывода. Давайте переиндексируем индекс «in_new» таблицы «Новая» и схемы «общедоступной», используя здесь команду REINDEX. Используйте ключевое слово «REINDEX» с именем индекса, которому предшествует ключевое слово «INDEX», как показано в запросе ниже. Выполнение этого запроса было успешным, поскольку на выходе отображается сообщение об успешном выполнении запроса. Теперь этот индекс обновляется, и если есть проблема, то ее больше не будет.

Не только индексы, но и команда REINDEX также может быть

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

Не только таблицы и индексы, вы также будете использовать

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

Чтобы обновить одну базу данных с множеством таблиц

Чтобы обновить одну базу данных с множеством таблиц, мы также можем использовать команду REINDEX. Вам просто нужно использовать ключевое слово «DATABASE» с именем базы данных для переиндексации, которому предшествует ключевое слово REINDEX. Давайте переиндексируем базу данных по умолчанию «Postgres», используя инструмент запроса другой базы данных, т. е. «aqsayasin. При выполнении этого запроса вы столкнетесь с ошибкой, показанной на изображении ниже. В нем говорится, что в настоящее время мы используем другую базу данных и пытаемся переиндексировать базу данных «Postgres». Таким образом, мы не можем делать то, что хотим. Таким образом, мы можем переиндексировать только базу данных, над которой работаем. Обновим нашу команду.

При выполнении этого запроса вы столкнетесь с ошибкой

В том же запросе мы заменили имя базы данных, т.е. «aqsayasin». Запрос REINDEX теперь успешно после выполнения показывает, что база данных переиндексирована правильно.

рос REINDEX теперь успешно после выполнения показывае

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

выполнении этой инструкции в инструменте запросов мы до си

Использование оболочки PostgreSQL (psql)

Та же функциональность может быть достигнута с помощью оболочки PostgreSQL. Откройте оболочку PostgreSQL, выполнив поиск по ключевому слову «psql» в строке поиска. Нажмите на приложение оболочки MySQL и напишите имя локального хоста, который вы использовали. Теперь обязательно добавьте правильное имя вашей базы данных, в которой вы хотите выполнить переиндексацию, вместе с правильным номером порта. После этого вам будет предложено добавить имя пользователя и пароль для пользователя вашей базы данных. Вы также можете использовать базу данных «Postgres» и имя пользователя, то есть по умолчанию. Ваша оболочка будет готова к использованию.

же функциональность может быть достигнута с помощью

Посмотрим, сколько индексов у нас в таблице «Ftest». Чтобы просмотреть их, используйте команду «\d+» с именем таблицы «Ftest». Вывод ниже показывает общее количество 2 индексов, найденных в этой таблице, т. е. iftest и inftest. Мы будем переиндексировать эти индексы в следующих запросах.

Посмотрим, сколько индексов у нас в

Используя ту же команду «\d+», мы получили индексы, отображаемые для таблицы «Значения». Он показывает единый индекс для этой таблицы, как показано ниже. Мы также будем переиндексировать его.

Начнем сначала переиндексировать таблицу «Ftest»

Начнем сначала переиндексировать таблицу «Ftest». Отбросьте инструкцию «REINDEX» в оболочке PostgreSQL с именем таблицы, т. е. Ftest. Это успешно, и теперь таблица переиндексирована. Полученное в результате слово «REINDEX» является доказательством нашего успеха здесь.

в оболочке PostgreSQL с именем таблицы

Чтобы переиндексировать схему PostgreSQL с именем «public», мы должны использовать ту же команду REINDEX с заголовком «SCHEMA». Это будет успешным снова в соответствии с результатом. Слово «REINDEX» — это сообщение об успехе на нашем экране.

льзовать ту же команду REINDEX с заголовком «SCHEMA

Чтобы воссоздать или деиндексировать одну базу данных, необходимо указать имя базы данных. Только записи, относящиеся к этой базе данных, будут проиндексированы, и никакая другая база данных не будет изменена.

Чтобы воссоздать или деиндексировать одну базу данных

Вы обнаружите, что не можете переиндексировать другую базу данных, кроме открытой в данный момент, в соответствии с приведенной ниже командой.

овать другую базу данных, кроме открытой в данный моме

Заключение

Мы узнали о концепции REINDEX в базе данных PostgreSQL. Мы рассмотрели примеры переиндексации существующего INDEX для конкретной таблицы и переиндексации всех индексов, найденных в других таблицах, за один шаг. Вся эта концепция переиндексации используется для обновления или воссоздания индексов для таблиц, баз данных и схемы, т. е. все в одном. Всем новым пользователям базы данных PostgreSQL эта статья будет весьма полезна для обучения.

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

  1. Руслан

    на скрине видно что базу postgres реиндекс не прошёл, ошибка то что база используется.

    Ответить