reindexdb — 重新建立 PostgreSQL 資料庫的索引
reindexdb
[connection-option
...] [option
...] [ -S
| --schema
schema
] ... [ -t
| --table
table
] ... [ -i
| --index
index
] ... [ -s
| --system
] [ dbname
| -a
| --all
]
reindexdb 是一個用於重建 PostgreSQL 資料庫中索引的工具程式。
reindexdb 是 SQL 命令 REINDEX
的包裝程式。透過此工具程式重新建立資料庫索引與透過其他方法存取伺服器重新建立索引,沒有實質上的差異。
reindexdb 接受下列命令列引數
-a
--all
重新建立所有資料庫的索引。
--concurrently
使用 CONCURRENTLY
選項。請參閱 REINDEX,其中詳細說明了此選項的所有注意事項。
[-d] dbname
[--dbname=]dbname
指定要重新建立索引的資料庫名稱,當未使用 -a
/--all
時。如果未指定,則會從環境變數 PGDATABASE
讀取資料庫名稱。如果未設定,則會使用為連線指定的的使用者名稱。 dbname
可以是連線字串。如果是這樣,連線字串參數將會覆寫任何衝突的命令列選項。
-e
--echo
回顯 reindexdb 產生並傳送到伺服器的命令。
-i index
--index=index
僅重新建立 index
。可以透過編寫多個 -i
開關來重新建立多個索引。
-j njobs
--jobs=njobs
透過同時執行 njobs
個命令來並行執行重新建立索引命令。此選項可能會減少處理時間,但也會增加資料庫伺服器的負載。
reindexdb 將開啟 njobs
個連線到資料庫,因此請確保您的 max_connections 設定足夠高,以容納所有連線。
請注意,此選項與 --system
選項不相容。
-q
--quiet
不顯示進度訊息。
-s
--system
僅重新建立資料庫系統目錄的索引。
-S schema
--schema=schema
僅重新建立 schema
的索引。可以透過編寫多個 -S
開關來重新建立多個結構描述的索引。
-t table
--table=table
僅重新建立 table
的索引。可以透過編寫多個 -t
開關來重新建立多個表格的索引。
--tablespace=tablespace
指定重建索引的表格空間。(此名稱會被當作雙引號識別碼處理。)
-v
--verbose
在處理期間列印詳細資訊。
-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
指定要連線的資料庫名稱,以便在使用 -a
/--all
時,找出哪些資料庫應該被重新建立索引。 如果未指定,將會使用 postgres
資料庫,如果該資料庫不存在,則會使用 template1
。 這可以是一個 連線字串。 如果是這樣,連線字串參數將覆蓋任何衝突的命令列選項。 此外,除了資料庫名稱本身之外的連線字串參數,將會在連線到其他資料庫時被重複使用。
PGDATABASE
PGHOST
PGPORT
PGUSER
預設連線參數
PG_COLOR
指定是否在診斷訊息中使用顏色。可能的值為 always
、auto
和 never
。
這個工具,就像大多數其他的 PostgreSQL 工具一樣,也使用 libpq 支援的環境變數(參閱 第 32.15 節)。
要重新建立 test
資料庫的索引:
$
reindexdb test
要重新建立名為 abcd
的資料庫中,表格 foo
和索引 bar
的索引:
$
reindexdb --table=foo --index=bar abcd
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表單報告文件問題。