💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# reindexdb ## Name reindexdb -- 重建PostgreSQL数据库索引 ## Synopsis `reindexdb` [`_connection-option_`...] [ `--table` | `-t` `_table_` ] ... [ `--index` | `-i` `_index_` ] ... [`_dbname_`] `reindexdb` [`_connection-option_`...] `--all` | `-a` `reindexdb` [`_connection-option_`...] `--system` | `-s` [`_dbname_`] ## 描述 reindexdb是一个重建数据库索引的工具。 reindexdb是 SQL 命令[REINDEX](#calibre_link-614)的包装。 因此,用哪种方法重建索引都一样。 ## 选项 reindexdb accepts the following command-line arguments: reindexdb接受下列命令行参数: `-a``--all` 对所有数据库重建索引。 `[-d]` `_dbname_` `[--dbname=]``_dbname_` 指定要重建索引的数据库的名字。如果没有指定并且也没有使用`-a` (或`--all`),那么数据库名从环境变量`PGDATABASE` 中读取。如果没有设置环境变量,那么就使用连接使用的用户名。 `-e` `--echo` 回显reindexdb生成并发送给数据库的命令。 `-i` `_index_` `--index=``_index_` 仅对`_index_`索引进行重建。 可以通过写多个`-i`选项重建多个索引。 `-q` `--quiet` 不显示进程信息。 `-s` `--system` 对数据库的系统表重建索引。 `-t` `_table_` `--table=``_table_` 仅对`_table_`表重建索引。 可以通过写多个`-t`选项给多个表重建索引。 `-V` `--version` 打印reindexdb的版本然后退出。 `-?` `--help` 显示关于reindexdb命令行参数的帮助然后退出。 reindexdb还接受下列命令行参数作为连接参数: `-h` `_host_` `--host=``_host_` 指定运行服务器的主机名。如果数值以斜杠开头,则被用作到 Unix 域套接字的路径。 `-p` `_port_` `--port=``_port_` 指定服务器正在侦听的 TCP 端口或本地 Unix 域套接字文件的扩展(描述符)。 `-U` `_username_` `--username=``_username_` 连接的用户名。 `-w` `--no-password` 从不发出密码提示问题。如果服务器要求密码认证并且密码不可用于其他意思如 `.pgpass`文件,则连接尝试将会失败。 该选项在批量工作和不存在用户输入密码的脚本中很有帮助。 `-W` `--password` 强制reindexdb在连接到数据库之前提示一个密码。 这个选项从来不是至关重要的,因为如果服务器需求密码认证,则reindexdb 自动提示一个密码。不过,reindexdb 将在找出服务器想要一个密码上浪费一个连接尝试。在某些情况下,值得输入`-W` 以避免额外的连接尝试。 `--maintenance-db=``_dbname_` 指定要连接到的数据库的名字以发现其他应该重建索引的数据库。如果没有指定, 那么将使用`postgres`数据库,如果该数据库不存在, 则使用`template1`。 ## 环境变量 `PGDATABASE` `PGHOST` `PGPORT` `PGUSER` 缺省连接参数 这个功用,类似大多数其他PostgreSQL实用工具, 也使用由libpq支持的环境变量(参阅[Section 31.14](#calibre_link-39))。 ## 诊断 如果遇到麻烦,参阅[REINDEX](#calibre_link-614)和[psql](#calibre_link-23) 获取潜在问题和错误信息的论述。数据库服务器必须在目标主机上运行。同样, 任何libpq前端库可获得的缺省设置和环境变量都将生效。 ## 注意 reindexdb可能需要多次连接PostgreSQL 服务器,且每次都询问密码。此时使用`~/.pgpass`文件将会很方便。 参见[Section 31.15](#calibre_link-457)获取更多信息。 ## 例子 重建数据库`test`中的所有索引: ``` <samp class="literal">$</samp> <kbd class="literal">reindexdb test</kbd> ``` 重建数据库`abcd`中名为`foo`的表上的`bar`索引: ``` <samp class="literal">$</samp> <kbd class="literal">reindexdb --table foo --index bar abcd</kbd> ``` ## 又见 [REINDEX](#calibre_link-614)