community.postgresql.postgresql_idx – Создание или удаление индексов в базе данных PostgreSQL
Примечание
Этот плагин входит в коллекцию community.postgresql (версия 1.1.1).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в книге задач укажите: community.postgresql.postgresql_idx.
Обзор
- Создание или удаление индексов в базе данных PostgreSQL.
Требования
Ниже перечислены требования, которые должны быть выполнены на хосте, на котором выполняется данный модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) SSL-центра сертификации (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. псевдонимы: ssl_rootcert | |
| cascade логическое значение |
| Автоматически удаляет объекты, зависящие от индекса, и, в свою очередь, все объекты, зависящие от этих объектов. Используется только со значением state=absent. Взаимоисключающее с concurrent=yes. |
| columns список / элементы=строка | Список столбцов индекса, которые должны быть покрыты индексом. Взаимоисключающее с state=absent. псевдонимы: column | |
| concurrent логическое значение |
| Включить или отключить режим одновременной работы (CREATE/DROP INDEX CONCURRENTLY). Обратите внимание, если concurrent=no, таблица будет заблокирована (ACCESS EXCLUSIVE) во время процесса создания. Более подробную информацию о уровнях блокировки см. в https://www.postgresql.org/docs/current/explicit-locking.html. Если процесс создания был прерван по какой-либо причине при cuncurrent=yes, индекс становится недействительным. В этом случае он должен быть удален и создан заново. Взаимоисключающее с cascade=yes. |
| cond строка | Условие индекса. Взаимоисключающее с state=absent. | |
| db строка | Имя базы данных для подключения и где будет создан/удален индекс. псевдонимы: login_db | |
| idxname строка / обязательный | Имя индекса для создания или удаления. псевдонимы: name | |
| idxtype строка | Тип индекса (например, btree, gist, gin и т.д.). Взаимоисключающее с state=absent. псевдонимы: type | |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix-домена для локальных подключений. | |
| login_user строка | По умолчанию: "postgres" | Имя пользователя для аутентификации. |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения. псевдонимы: login_port |
| schema строка | Имя схемы базы данных, где будет создан индекс. | |
| session_role строка | Переключение на роль session_role после подключения. Указанная роль session_role должна быть ролью, членом которой является текущий login_user. Проверка разрешений для SQL-команд выполняется так, как будто роль session_role была той, которая первоначально вошла в систему. | |
| ssl_mode строка |
| Определяет, будет ли и с какой приоритетностью устанавливаться защищенное SSL-TCP/IP-соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. Значение по умолчанию prefer соответствует значению по умолчанию libpq. |
| state строка |
| Состояние индекса. present подразумевает, что индекс будет создан, если он не существует.absent подразумевает, что индекс будет удален, если он существует. |
| storage_params список / элементы=строка | Параметры хранения, такие как fillfactor, vacuum_cleanup_index_scale_factor и т.д. Взаимоисключающее с state=absent. | |
| table строка | Таблица для создания индекса на ней. Взаимоисключающее с state=absent. | |
| tablespace строка | Установить табличное пространство для индекса. Взаимоисключающее с state=absent. | |
| trust_input логическое значение добавлено в 0.2.0 community.postgresql |
| Если no, проверьте, являются ли значения параметров idxname, session_role, schema, table, columns, tablespace, storage_params, cond потенциально опасными.Использование no имеет смысл только тогда, когда SQL-инъекции через параметры возможны. |
| unique логическое значение добавлено в 0.2.0 community.postgresql |
| Включить уникальный индекс. В настоящее время уникальные индексы поддерживаются только для btree. |
Примечания
Примечание
- Поддерживает
check_mode. - Процесс создания индекса может повлиять на производительность базы данных.
- Для предотвращения блокировок таблиц в производственных базах данных используйте concurrent=yes (поведение по умолчанию).
- По умолчанию предполагается, что вы входите в систему или используете sudo с учетной записью
postgresна хосте. - Чтобы избежать ошибки «Ошибка проверки подлинности peer для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует psycopg2, адаптер Python для работы с базой данных PostgreSQL. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля.
- Если удаленный хост является сервером PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удаленном хосте.
- Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом хосте перед использованием этого модуля.
- Для параметра ca_cert требуется как минимум версия Postgres 8.4 и версия psycopg2 2.4.3.
См. также
См. также
- community.postgresql.postgresql_table
-
Официальная документация по модулю community.postgresql.postgresql_table.
- community.postgresql.postgresql_tablespace
-
Официальная документация по модулю community.postgresql.postgresql_tablespace.
- Справочник по индексам PostgreSQL
-
Общая информация об индексах PostgreSQL.
- Ссылка CREATE INDEX
-
Полный справочник по команде CREATE INDEX.
- Ссылка ALTER INDEX
-
Полный справочник по команде ALTER INDEX.
- Ссылка DROP INDEX
-
Полный справочник по команде DROP INDEX.
Примеры
- name: Create btree index if not exists test_idx concurrently covering columns id and name of table products
community.postgresql.postgresql_idx:
db: acme
table: products
columns: id,name
name: test_idx
- name: Create btree index test_idx concurrently with tablespace called ssd and storage parameter
community.postgresql.postgresql_idx:
db: acme
table: products
columns:
- id
- name
idxname: test_idx
tablespace: ssd
storage_params:
- fillfactor=90
- name: Create gist index test_gist_idx concurrently on column geo_data of table map
community.postgresql.postgresql_idx:
db: somedb
table: map
idxtype: gist
columns: geo_data
idxname: test_gist_idx
# Note: for the example below pg_trgm extension must be installed for gin_trgm_ops
- name: Create gin index gin0_idx not concurrently on column comment of table test
community.postgresql.postgresql_idx:
idxname: gin0_idx
table: test
columns: comment gin_trgm_ops
concurrent: no
idxtype: gin
- name: Drop btree test_idx concurrently
community.postgresql.postgresql_idx:
db: mydb
idxname: test_idx
state: absent
- name: Drop test_idx cascade
community.postgresql.postgresql_idx:
db: mydb
idxname: test_idx
state: absent
cascade: yes
concurrent: no
- name: Create btree index test_idx concurrently on columns id,comment where column id > 1
community.postgresql.postgresql_idx:
db: mydb
table: test
columns: id,comment
idxname: test_idx
cond: id > 1
- name: Create unique btree index if not exists test_unique_idx on column name of table products
community.postgresql.postgresql_idx:
db: acme
table: products
columns: name
name: test_unique_idx
unique: yes
concurrent: no
Значения возврата
Общие значения возврата описаны в этом разделе, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| name string | всегда | Имя индекса. Пример: foo_idx |
| query string | всегда | Запрос, который пытались выполнить. Пример: CREATE INDEX CONCURRENTLY foo_idx ON test_table USING BTREE (id) |
| schema string | всегда | Схема, в которой существует индекс. Пример: public |
| state string | всегда | Состояние индекса. Пример: present |
| storage_params list / elements=string | всегда | Параметры хранения индекса. Пример: ['fillfactor=90'] |
| tablespace string | всегда | Файловая система, где существует индекс. Пример: ssd |
| valid boolean | всегда | Действительность индекса. Пример: True |
Авторы
- Андрей Клычков (@Andersson007)
- Томас О’Доннелл (@andytom)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/postgresql/postgresql_idx_module.html