community.postgresql.postgresql_idx 模块 – 从 PostgreSQL 数据库创建或删除索引
注意
此模块是 community.postgresql 集合 (版本 3.9.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.postgresql
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在剧本中使用它,请指定:community.postgresql.postgresql_idx
。
概要
从 PostgreSQL 数据库创建或删除索引。
要求
在执行此模块的主机上需要以下要求。
psycopg2 >= 2.5.1
参数
参数 |
注释 |
---|---|
指定包含 SSL 证书颁发机构 (CA) 证书的文件的名称。 如果文件存在,则会验证服务器的证书是否由这些机构之一签名。 |
|
自动删除依赖于索引的对象,进而删除依赖于这些对象的所有对象。 仅与 *state=absent* 一起使用。 与 *concurrent=true* 互斥。 选项
|
|
需要索引涵盖的索引列列表。 与 *state=absent* 互斥。 |
|
启用或禁用并发模式 (CREATE / DROP INDEX CONCURRENTLY)。 请注意,如果 *concurrent=false*,则在构建过程中表将被锁定 (ACCESS EXCLUSIVE)。有关锁定级别的更多信息,请参见 https://postgresql.ac.cn/docs/current/explicit-locking.html。 如果 *cuncurrent=true* 时构建过程因任何原因中断,则索引将变为无效。在这种情况下,应将其删除并重新创建。 与 *cascade=true* 互斥。 选项
|
|
索引条件。 与 *state=absent* 互斥。 |
|
要传递给 libpg 的任何其他参数。 这些参数优先。 默认值: |
|
要连接到的数据库的名称,以及将在其中创建/删除索引的数据库。 |
|
要创建或删除的索引的名称。 |
|
索引类型(如 btree、gist、gin 等)。 与 *state=absent* 互斥。 |
|
运行数据库的主机。 如果您在使用 默认值: |
|
此模块应用于建立其 PostgreSQL 会话的密码。 默认值: |
|
本地连接的 Unix 域套接字的路径。 默认值: |
|
此模块应用于建立其 PostgreSQL 会话的用户名。 默认值: |
|
要连接到的数据库端口。 默认值: |
|
将在其中创建索引的数据库模式的名称。 |
|
连接后切换到 session_role。指定的 session_role 必须是当前 login_user 的成员的角色。 SQL 命令的权限检查将像 session_role 是最初登录的用户一样进行。 |
|
指定客户端 SSL 证书的文件名。 |
|
指定用于客户端证书的密钥的位置。 |
|
确定是否以及以什么优先级与服务器协商安全的 SSL TCP/IP 连接。 更多关于模式的信息,请参见 https://postgresql.ac.cn/docs/current/static/libpq-ssl.html。 默认值为 选项
|
|
索引状态。
选项
|
|
存储参数,例如 fillfactor、vacuum_cleanup_index_scale_factor 等。 与 *state=absent* 互斥。 |
|
要在其上创建索引的表。 与 *state=absent* 互斥。 |
|
为索引设置表空间。 与 *state=absent* 互斥。 |
|
如果 只有当可能通过参数进行 SQL 注入时,使用 选项
|
|
启用唯一索引。 目前只有 btree 支持唯一索引。 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。 |
备注
注意
索引构建过程可能会影响数据库性能。
为了避免在生产数据库上进行表锁定,请使用 concurrent=true(默认行为)。
默认身份验证假设您正在以主机上的
postgres
帐户身份登录或使用 sudo 命令。为避免出现“Peer authentication failed for user postgres”错误,请使用 postgres 用户作为 become_user。
此模块使用
psycopg
,这是一个 Python PostgreSQL 数据库适配器。在使用此模块之前,必须确保已安装psycopg2 >= 2.5.1
或psycopg3 >= 3.1.8
。如果远程主机是 PostgreSQL 服务器(这是默认情况),则也必须在远程主机上安装 PostgreSQL。
对于基于 Ubuntu 的系统,在使用此模块之前,请在远程主机上安装
postgresql
、libpq-dev
和python3-psycopg2
包。
另请参阅
另请参阅
- community.postgresql.postgresql_table
创建、删除或修改 PostgreSQL 表。
- community.postgresql.postgresql_tablespace
从远程主机添加或删除 PostgreSQL 表空间。
- 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: false
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: true
concurrent: false
- 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: true
concurrent: false
返回值
常见的返回值已在 此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
索引名称。 返回:成功 示例: |
|
尝试执行的查询。 返回:成功 示例: |
|
索引存在的模式。 返回:成功 示例: |
|
索引状态。 返回:成功 示例: |
|
索引存储参数。 返回:成功 示例: |
|
索引存在的表空间。 返回:成功 示例: |
|
索引有效性。 返回:成功 示例: |