2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1

reindexdb

reindexdb — 重新索引一個 PostgreSQL 資料庫

概要

reindexdb [連線選項...] [選項...] [ -S | --schema 模式 ] ... [ -t | --table ] ... [ -i | --index 索引 ] ... [ -s | --system ] [ 資料庫名 | -a | --all ]

描述

reindexdb 是一個用於在 PostgreSQL 資料庫中重建索引的實用程式。

reindexdb 是 SQL 命令 REINDEX 的一個包裝器。透過此實用程式或透過其他訪問伺服器的方法進行資料庫重新索引之間沒有實際區別。

選項

reindexdb 接受以下命令列引數

-a
--all

重新索引所有資料庫。

--concurrently

使用 CONCURRENTLY 選項。請參閱 REINDEX,其中詳細解釋了此選項的所有注意事項。

[-d] 資料庫名
[--dbname=]資料庫名

指定要重新索引的資料庫的名稱,當未使用 -a/--all 時。如果未指定,則從環境變數 PGDATABASE 中讀取資料庫名稱。如果未設定,則使用為連線指定的使用者名稱。資料庫名 可以是 連線字串。如果是這樣,連線字串引數將覆蓋任何衝突的命令列選項。

-e
--echo

回顯 reindexdb 生成併發送到伺服器的命令。

-i 索引
--index=索引

僅重新建立 索引。可以透過寫入多個 -i 開關來重新建立多個索引。

-j njobs
--jobs=njobs

透過同時執行 njobs 條命令來並行執行重新索引命令。此選項可能會減少處理時間,但也會增加資料庫伺服器的負載。

reindexdb 將開啟 njobs 個到資料庫的連線,因此請確保您的 max_connections 設定足夠高,可以容納所有連線。

請注意,此選項與 --system 選項不相容。

-q
--quiet

不顯示進度訊息。

-s
--system

僅重新索引資料庫的系統目錄。

-S 模式
--schema=模式

僅重新索引 模式。可以透過寫入多個 -S 開關來重新索引多個模式。

-t table
--table=table

僅重新索引 。可以透過寫入多個 -t 開關來重新索引多個表。

--tablespace=表空間

指定重建索引的表空間。(此名稱被處理為雙引號識別符號。)

-v
--verbose

在處理過程中顯示詳細資訊。

-V
--version

列印 reindexdb 版本並退出。

-?
--help

顯示有關 reindexdb 命令列引數的幫助,然後退出。

reindexdb 還接受以下用於連線引數的命令列引數

-h 主機
--host=主機

指定伺服器執行所在計算機的主機名。如果值以斜槓開頭,則用作 Unix 域套接字目錄。

-p
--port=

指定伺服器正在監聽連線的 TCP 埠或本地 Unix 域套接字副檔名。

-U 使用者名稱
--username=使用者名稱

要連線的使用者。:

-w
--no-password

絕不發出密碼提示。如果伺服器需要密碼身份驗證且密碼不可用(例如透過 .pgpass 檔案),則連線嘗試將失敗。此選項在沒有使用者在場輸入密碼的批處理作業和指令碼中很有用。

-W
--password

強制 reindexdb 在連線到資料庫之前提示輸入密碼。

此選項永遠不是必需的,因為如果伺服器要求密碼身份驗證,reindexdb 將自動提示輸入密碼。但是,reindexdb 將浪費一次連線嘗試來發現伺服器需要密碼。在某些情況下,鍵入 -W 以避免額外的連線嘗試是值得的。

--maintenance-db=資料庫名

當使用 -a/--all 時,連線到此資料庫以收集要重新索引的資料庫列表。如果未指定,將使用 postgres 資料庫,如果不存在,則使用 template1。這可以是一個 連線字串。如果是這樣,連線字串引數將覆蓋任何衝突的命令列選項。此外,當連線到其他資料庫時,連線字串引數(除了資料庫名稱本身之外)將被重用。

環境變數

PGDATABASE
PGHOST
PGPORT
PGUSER

預設連線引數

PG_COLOR

指定是否在診斷訊息中使用顏色。可能的值為 alwaysautonever

此實用程式以及大多數其他 PostgreSQL 實用程式也使用 libpq 支援的環境變數(請參閱 第 32.15 節)。

診斷

如果遇到困難,請參閱 REINDEXpsql 以瞭解潛在問題和錯誤訊息的討論。目標主機上的資料庫伺服器必須正在執行。此外,libpq 前端庫使用的任何預設連線設定和環境變數都將適用。

示例

重新索引資料庫 test

$ reindexdb test

在名為 abcd 的資料庫中重新索引表 foo 和索引 bar

$ reindexdb --table=foo --index=bar abcd

另請參閱

REINDEX

提交更正

如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 來報告文件問題。