您可以將 SQL 物件組合為套件,並以套件為單元使用,藉此擴充 PostgreSQL。本頁面說明如何設定 Cloud SQL 支援的 PostgreSQL 擴充功能。
使用 PostgreSQL 擴充功能
您只能安裝 Cloud SQL 支援的擴充功能。詳情請參閱「Cloud SQL 支援的 PostgreSQL 擴充功能」。
安裝擴充功能
使用擴充功能前,請先安裝擴充功能:
- 在 psql 工具中執行 CREATE EXTENSION 指令。
超級使用者權限需求
在 Cloud SQL 中,只有具有 cloudsqlsuperuser
角色的使用者才能建立擴充功能。建立新的 PostgreSQL 執行個體時,系統會為您建立預設的 postgres
使用者 (但您必須設定使用者的密碼)。預設的 postgres
使用者屬於 cloudsqlsuperuser
角色。詳情請參閱「關於 PostgreSQL 使用者」。
資料庫間連線
連線的目標執行個體必須與連線的執行個體位於相同的虛擬私有雲網路中。
對於叢集執行個體,您無法在Google Cloud 控制台中選擇「Require trusted client certificates」選項。此外,如要連線至同一個執行個體中的資料庫,您無法將主機設為 localhost 或 127.0.0.1
。您必須改用 Google Cloud 控制台顯示的執行個體 IP 位址。
要求支援新擴充功能
您無法在 Cloud SQL 中自行建立擴充功能。
如要申請擴充功能支援服務,請在開放性問題上按一下 +1,或建立新問題。如要查看待處理的 Cloud SQL 問題清單,以及建立新問題的相關資訊,請參閱「依產品搜尋或建立問題和功能要求」。
Cloud SQL 支援的 PostgreSQL 擴充功能
如要進一步瞭解如何使用特定擴充功能,請參閱下方任一表格中的說明文件連結。
Cloud SQL 支援的 PostgreSQL 擴充功能可分為以下類別:
PostGIS
所有主要版本的 PostgreSQL 適用 Cloud SQL 都支援 PostGIS 擴充功能。
下表列出各個 PostgreSQL 適用的 Cloud SQL 版本的 PostGIS 擴充功能版本:
PostgreSQL 適用的 Cloud SQL 版本 | PostGIS 擴充功能 |
PostgreSQL 9.6 | 3.2.5 |
PostgreSQL 10 | 3.2.5 |
PostgreSQL 11 | 3.2.5 |
PostgreSQL 12 | 3.4.4 |
PostgreSQL 13 | 3.5.2 |
PostgreSQL 14 | 3.5.2 |
PostgreSQL 15 | 3.5.2 |
PostgreSQL 16 | 3.5.2 |
PostgreSQL 17 | 3.5.2 |
針對特定 PostgreSQL 主要版本,您可以在 CREATE EXTENSION 指令中,使用 VERSION
子句指定 PostGIS 擴充功能版本。
PostGIS 擴充功能包含下列項目:
postgis
postgis_raster
postgis_sfcgal
postgis_tiger_geocoder
postgis_topology
address_standardizer
address_standardizer_data_us
詳情請參閱「PostGIS 安裝程序」。
此外,PostgreSQL 適用的 Cloud SQL 還包含 pgRouting
擴充功能的 3.6.2 版,可擴充 PostGIS。pgRouting
擴充功能可透過網路路由和分析功能強化地理空間處理。
您可以手動將 PostGIS 及其相關擴充功能升級至最新版本。如要進一步瞭解如何升級 PostGIS 擴充功能,請參閱「升級 PostGIS」。
資料類型擴充功能
擴充功能 | 說明 |
btree_gin | 提供實作 B 樹等效行為的範例 GIN 運算子類別。 PostgreSQL 9.6 使用 1.0 版。PostgreSQL 10 使用 1.2 版。PostgreSQL 11 以上版本使用 1.3 版。 |
btree_gist | 提供實作 B-tree 等同行為的 GiST 索引運算子類別。 PostgreSQL 9.6 使用 1.2 版。PostgreSQL 10、11、12 和 13 使用 1.5 版。PostgreSQL 14 使用的是 1.6 版。PostgreSQL 15 以上版本會使用 1.7 版。 |
chkpass | 實作專門用於儲存加密密碼的資料類型 chkpass 。PostgreSQL 9.6 和 10 使用 1.0 版。不支援其他版本。 |
citext | 提供不區分大小寫的字元字串類型 citext 。PostgreSQL 9.6 使用 1.3 版。PostgreSQL 10 使用 1.4 版。PostgreSQL 11 使用的是 1.5 版。PostgreSQL 12 以上版本使用 1.6 版。 |
cube | 實作資料類型 cube ,用於表示多維立方格。PostgreSQL 9.6 和 10 使用 1.2 版。PostgreSQL 11 使用的是 1.3 版。PostgreSQL 12 和 13 使用 1.4 版。PostgreSQL 14 以上版本使用 1.5 版。 |
hstore | 實作 hstore 資料類型,用於在單一 PostgreSQL 值中儲存一組鍵/值組合。PostgreSQL 9.6 和 10 使用 1.4 版。PostgreSQL 11 使用的是 1.5 版。PostgreSQL 12 使用 1.6 版。PostgreSQL 13 使用的是 1.7 版。PostgreSQL 14 以上版本使用 1.8 版。 |
ip4r | 提供 IPv4/v6 位址和位址範圍的資料類型,以及索引支援功能。 PostgreSQL 適用的 Cloud SQL 使用 2.4.2 版。 |
isn | 提供部分國際產品編號標準的資料類型。 PostgreSQL 9.6 和 10 使用 1.1 版。PostgreSQL 11 以上版本使用 1.2 版。 |
lo | 支援管理大型物件 (也稱為 LO 或 BLOB)。 PostgreSQL 適用的 Cloud SQL 使用 1.1 版。 |
ltree | 實作資料類型 ltree ,用於表示儲存在階層式樹狀結構中的資料標籤。PostgreSQL 9.6、10、11 和 12 使用 1.1 版。PostgreSQL 13、14、15 和 16 使用 1.2 版。PostgreSQL 17 使用 1.3 版。 |
postgresql-hll | 引入新的資料類型 hll ,這是 HyperLogLog 資料結構。請參閱本文件中的 postgresql-hll。PostgreSQL 適用的 Cloud SQL 使用 2.18 版。 |
prefix | 提供前置字串比對和索引支援功能。 PostgreSQL 適用的 Cloud SQL 使用 1.2.0 版。 |
語言擴充功能
擴充功能 | 說明 |
plpgsql | 可載入的程序語言,可用於建立函式、程序和觸發事件。您也可以使用這門語言,直接執行 DO 區塊中的程式碼。 PostgreSQL 適用的 Cloud SQL 使用的是 1.0 版。 |
plv8 | 提供可啟用 JavaScript 的程序語言。 PostgreSQL 適用的 Cloud SQL 使用的是 3.2.2 版,而該版本會使用 V8 JavaScript 引擎 11.5 版。 |
其他擴充功能
擴充功能 | 說明 |
amcheck | 提供用於驗證關係結構邏輯一致性的函式,讓 pg_amcheck 應用程式能夠檢查資料毀損情形。 |
auto_explain | 啟用自動記錄執行速度緩慢陳述式的執行計劃,以便進行疑難排解等作業。提供自動化方式,執行 EXPLAIN 指令的功能。請參閱本文件中的 auto_explain。 |
autoinc | 提供自動遞增欄位的函式。這個觸發事件會將序列的下一個值儲存到整數欄位。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
bloom | 提供一種方法,可根據布林篩選器存取索引。布林過濾器是一種節省空間資料結構,可用於測試元素是否為集合的成員。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
dblink | 提供可在資料庫工作階段中連線至 PostgreSQL 資料庫的函式。請參閱本文件中的
dblink。 PostgreSQL 適用的 Cloud SQL 使用 1.2 版。 |
decoderbufs | 可將輸出資料以 Protocol Buffers 格式提供的 PostgreSQL 邏輯解碼器,已調整為適合 Debezium 使用。 |
dict_int | 全文搜尋的額外字典範本,可控制整數的索引。 PostgreSQL 適用的 Cloud SQL 使用的是 1.0 版。 |
earthdistance | 提供兩種計算地球表面大圓線距離的方法。 PostgreSQL 適用的 Cloud SQL 使用 1.1 版。 |
fuzzystrmatch | 提供多個函式,用於判斷字串之間的相似度和距離。 PostgreSQL 9.6、10、11、12、13、14 和 15 使用 1.1 版。PostgreSQL 16 以上版本使用 1.2 版 |
google_ml_integration | 產生向量嵌入項目,使用大型語言模型 (LLM) 將文字提示轉換為數值向量。 PostgreSQL 12 以上版本使用 1.4.2 版。其他版本不支援。 |
insert_username | 提供函式,可將目前使用者的名稱儲存至文字欄位。您可以使用這項資訊,追蹤資料庫表格中上次修改資料列的使用者。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
intagg | 提供整數匯集器與列舉程式。 PostgreSQL 適用的 Cloud SQL 使用的是 1.1 版。 |
intarray | 提供一組函式和運算子,用於操作不含空值的整數陣列,並對這些陣列執行索引搜尋。 PostgreSQL 9.6、10、11 和 12 使用 1.2 版。PostgreSQL 13 使用的是 1.3 版。PostgreSQL 14 以上版本使用 1.5 版。 |
moddatetime | 提供函式,可將目前時間儲存至 timestamp 欄位。您可以使用這個屬性追蹤資料庫表格中資料列的上次修改時間。PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
oracle_fdw | 提供外部資料包裝函式 (fdw),讓您輕鬆有效率地存取 Oracle 資料庫。 PostgreSQL 適用的 Cloud SQL 使用 1.2 版。 |
orafce | 提供模擬 Oracle 資料庫中部分函式和套件的函式和運算子。使用這些函式將 Oracle 應用程式移植至 PostgreSQL。 PostgreSQL 9.6 和 10 使用 3.25 版。PostgreSQL 11 以上版本使用 4.13 版。 |
pageinspect | 在低層級檢查資料庫頁面內容。請參閱本文件中的 pageinspect。 PostgreSQL 9.6 使用 1.5 版。PostgreSQL 10 使用 1.6 版。PostgreSQL 11 和 12 使用 1.7 版。PostgreSQL 13 和 14 使用的是 1.8 版。PostgreSQL 15 使用的是 1.11 版。PostgreSQL 16 以上版本使用 1.12 版。 |
pgAudit | 收集稽核資料。
所有版本的 pgAudit 稽核記錄檔案可設定的值為 如要進一步瞭解如何搭配使用此擴充功能和 Cloud SQL,請參閱「 使用 pgAudit 稽核 PostgreSQL」。 |
pg_background | 可讓您在背景工作站中執行任意指令。 PostgreSQL 適用的 Cloud SQL 使用 1.2 版。 |
pg_bigm | 啟用全文搜尋功能,並允許使用雙字詞 (bigram) 索引,加快全文搜尋速度。請參閱本文件中的 pg_bigm。 |
pg_buffercache | 提供一種方法,可即時檢查共用緩衝區快取中發生的情況。 PostgreSQL 9.6 使用 1.2 版。PostgreSQL 10、11、12、13、14 和 15 使用 1.3 版。PostgreSQL 16 使用的是 1.4 版。PostgreSQL 17 使用 1.5 版。 |
pg_cron | 提供以 Cron 為基礎的工作排程器。這個擴充功能可啟用 cron 語法,直接從資料庫排定 PostgreSQL 指令。如要進一步瞭解擴充功能,請參閱本文中的 pg_cron。 PostgreSQL 10 以上版本使用 1.6.4 版。 |
pgcrypto | 為 PostgreSQL 提供加密功能。 PostgreSQL 適用的 Cloud SQL 使用 1.3 版。 |
pglogical | 為 PostgreSQL 提供邏輯複製功能。請參閱「
設定邏輯複製和解碼」一文。 PostgreSQL 適用的 Cloud SQL 使用的是 2.4.5 版。 |
pgfincore | 一組函式,用於管理 PostgreSQL 作業系統磁碟快取記憶體中的頁面。請參閱本文件中的 pgfincore。 PostgreSQL 適用的 Cloud SQL 使用 1.3.1 版。 |
pg_freespacemap | 檢查空白空間地圖 (FSM)。另請參閱本文件中的 pg_freespacemap。 PostgreSQL 適用的 Cloud SQL 使用的是 1.2 版。 |
pg_hint_plan | 讓您可以使用提示改善 PostgreSQL 執行計畫,提示是 SQL 註解中的簡單說明。另請參閱本文件中的 pg_hint_plan。 |
pgoutput | 邏輯複製功能會使用這個外掛程式,用於變更資料擷取。pgoutput 是預設外掛程式,因此所有版本的 PostgreSQL 適用的 Cloud SQL 都支援這項功能。 |
pg_ivm | 讓您能夠更新已具象化的檢視畫面,只計算並套用漸進性變更,而非從頭重新計算內容。 PostgreSQL 13 以上版本支援 1.9 版。 |
pg_partman | 可讓您建立及管理時間和序列資料表分區集。另請參閱本文件中的 pg_partman。 PostgreSQL 14 以上版本支援 5.2.4 版,而 14 以下版本僅支援 4.7.4 版。 |
pg_prewarm | 提供方便的方式,將關聯資料載入作業系統緩衝區快取或 PostgreSQL 緩衝區快取。 PostgreSQL 9.6 和 10 使用 1.1 版。PostgreSQL 11 以上版本使用 1.2 版。 |
pg_proctab | 可讓您將 pg_top 與 PostgreSQL 適用的 Cloud SQL 搭配使用,並從作業系統程序表產生報表。另請參閱本文件中的 pg_proctab。 |
pg_repack | 可讓您從資料表和索引中移除膨脹資料。您可以選擇執行線上 CLUSTER (依叢集索引排序資料表)。請參閱本文件中的 pg_repack。 PostgreSQL 適用的 Cloud SQL 使用 1.5.0 版。 |
pgrowlocks | 提供指定表格的列鎖定資訊。 PostgreSQL 適用的 Cloud SQL 使用的是 1.2 版。 |
pgstattuple | 提供各種函式,用於取得元組層級統計資料。 PostgreSQL 9.6 使用 1.4 版。所有其他版本都使用 1.5 版。 |
pg_similarity | 支援 PostgreSQL 上的相似查詢。 PostgreSQL 適用的 Cloud SQL 使用的是 1.0 版。 |
pg_squeeze | 移除資料表中的未使用空間,並可選擇使用索引來排序資料表的記錄或資料列 (元組)。如要進一步瞭解這個擴充功能,請參閱本文中的 pg_squeeze。 PostgreSQL 11 以上版本會使用 1.5 版。 |
pg_stat_statements | 可讓您追蹤執行的所有 SQL 陳述式的執行統計資料。 PostgreSQL 9.6 使用 1.4 版。PostgreSQL 10 和 11 使用 1.6 版。PostgreSQL 12 使用 1.7。PostgreSQL 13 使用 1.8。PostgreSQL 14 使用 1.9。PostgreSQL 15 和 16 使用 1.10。PostgreSQL 17 使用 1.11。 |
pgTAP | 為 PostgreSQL 提供單元測試架構,以 PL/pgSQL 和 PL/SQL 編寫。 PostgreSQL 適用的 Cloud SQL 使用 1.3.0 版。 |
pg_trgm | 提供函式和運算子,可根據三元組比對判斷英數文字的相似度,以及索引運算子類別,支援快速搜尋相似字串。 PostgreSQL 9.6 和 10 使用 1.3 版。PostgreSQL 11 和 12 使用 1.4 版。PostgreSQL 13 使用 1.5。PostgreSQL 14 以上版本使用 1.6 版。 |
pgtt | 在 PostgreSQL 資料庫中建立及管理 DB2 或 Oracle 風格的全域臨時表。 |
pgvector |
開放原始碼擴充功能,可在 PostgreSQL 資料庫中儲存及搜尋向量嵌入。 |
pg_visibility | 提供檢查資料表的顯示範圍地圖 (VM) 和頁面層級顯示範圍資訊的方法。另請參閱本文件中的 pg_visibility。 PostgreSQL 適用的 Cloud SQL 使用的是 1.2 版。 |
pg_wait_sampling | 收集等待事件的取樣統計資料,為伺服器上的程序提供等待事件資料。PostgreSQL 適用的 Cloud SQL 使用的是 1.1.5 版。 |
PL/Proxy | 可在 PostgreSQL 資料庫之間進行遠端程序呼叫的程序語言處理常式,可選擇分割。另請參閱本文中的「PL/Proxy」一節。 PostgreSQL 適用的 Cloud SQL 使用 2.11.0 版。 |
postgres_fdw | 允許在執行個體內或跨執行個體建立外部資料包裝函式。另請參閱本文件中的 postgres_fdw。 PostgreSQL 9.6、10、11、12 和 13 使用 1.0 版。PostgreSQL 14 以上版本則使用 1.1 版。 |
postgresql_anonymizer | 遮蓋或取代 PostgreSQL 資料庫中的個人識別資訊 (PII) 或機密資料。詳情請參閱「postgresql_anonymizer」一節。 PostgreSQL 適用的 Cloud SQL 使用 1.0.0 版。 |
postgresql_hll | 提供 HyperLogLog ( PostgreSQL 適用的 Cloud SQL 使用的是 2.18 版。 |
rdkit | 一組化學資訊和機器學習軟體。您可以使用這個擴充功能比較、操控及辨識分子結構。 PostgreSQL 適用的 Cloud SQL 使用的是 4.6.1 版。 |
refint | 包含檢查外鍵限制、參照資料表和參照資料表的函式。這個擴充功能也展示了 伺服器程式設計介面 (SPI)。PostgreSQL 適用的 Cloud SQL 使用的是 1.0 版。 |
sslinfo | 提供目前用戶端連線至執行個體時提供的 SSL 憑證相關資訊。 PostgreSQL 適用的 Cloud SQL 使用 1.2 版。 |
tablefunc | 包含傳回表格 (多列) 的各種函式。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
tcn | 提供觸發事件函式,可通知監聽器資料庫資料表內容的變更。 PostgreSQL 適用的 Cloud SQL 使用 1.0 版。 |
tds_fdw | 提供外部資料包裝函式 (fdw),用於存取使用表格式資料串流 (TDS) 通訊協定的資料庫,例如 Microsoft SQL Server 和 Sybase。PostgreSQL 適用的 Cloud SQL 使用的是 2.0.4 版。 |
temporal_tables | 支援暫時性資料表。時間性資料表會記錄資料列在資料庫角度上的有效期間。 PostgreSQL 適用的 Cloud SQL 使用 1.2.2 版。 |
tsm_system_rows | 提供資料表取樣方法 SYSTEM_ROWS,可用於 SELECT 指令的 TABLESAMPLE 子句。 PostgreSQL 適用的 Cloud SQL 使用的是 1.0 版。 |
tsm_system_time | 提供資料表取樣方法 SYSTEM_TIME,可用於 SELECT 指令的 TABLESAMPLE 子句。 PostgreSQL 適用的 Cloud SQL 使用的是 1.0 版。 |
unaccent | 文字搜尋字典,可從詞素中移除重音 (變音符號)。 PostgreSQL 適用的 Cloud SQL 使用 1.1 版。 |
uuid-ossp | 提供函式,藉此使用多個標準演算法中的其中一個來產生通用唯一識別碼 (UUID)。 PostgreSQL 適用的 Cloud SQL 使用 1.1 版。 |
進一步瞭解部分 PostgreSQL 擴充功能
本節將進一步說明上表中支援的部分 PostgreSQL 擴充功能。
auto_explain
如要在執行個體上開始使用這個擴充功能,請將 cloudsql.enable_auto_explain
標記設為 on
。如要瞭解如何設定旗標,以及查看此擴充功能支援的旗標,請參閱「設定資料庫旗標」。
如要查看與此擴充功能啟用的執行計畫記錄相關聯的記錄資料和事件,請參閱 Cloud Logging 說明文件。
或者,如果使用者僅具備 cloudsqlsuperuser
角色,您可以使用 load
指令,在一個工作階段中載入這項擴充功能。
dblink
您可以在資料庫工作階段中使用這個擴充功能,連線至 PostgreSQL 資料庫並執行查詢。
目前,這個擴充功能適用於同一個虛擬私有雲網路中的兩個 Cloud SQL 私人 IP 執行個體,或同一個執行個體中的跨資料庫。
如需更多資訊,請參閱 PostgreSQL 說明文件中的 dblink。
使用 dblink 搭配密碼連線
如要連線至資料庫,或與其他使用者連線至相同的執行個體,您必須指定密碼。以下程式碼片段僅供示範 (但不供正式使用):
SELECT * FROM dblink (
'dbname=name port=1234 host=host user=user password=password',
'select id, name from table' \
) AS t(id int, name text);
或者,如要只設定連線,請參考以下程式碼片段 (僅供參考,不供實際使用):
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
使用 dblink 連線,不必輸入密碼
如要以相同使用者身分連線至相同的執行個體,您可以不使用密碼連線。例如:
設定下列資料庫旗標,即可啟用不需密碼的本機連線
cloudsql.allow_passwordless_local_connections
不指定主機即可連線,這表示會連線至相同的執行個體。範例如下:
SELECT * FROM dblink('dbname=finance user=alice', 'select income from revenue') AS revenue(income integer);
結果可能類似以下內容:
income -------- 1000 (1 row)
如要連線至同一個執行個體中的資料庫,您無法將主機設為 localhost 或 127.0.0.1
。您必須使用 Google Cloud 主控台中顯示的執行個體 IP 位址。
另請參閱本文中的 postgres_fdw 和 PL/Proxy。
pageinspect
這個擴充功能會在低層級檢查資料庫頁面內容。詳情請參閱 PostgreSQL 說明文件中的 pageinspect。
pg_bigm
這個擴充功能可啟用全文搜尋功能,並允許使用雙字詞 (bigram) 索引,加快全文搜尋速度。
如要在執行個體上開始使用這個擴充功能,請將 cloudsql.enable_pg_bigm
標記設為 on
。系統也支援下列旗標:
pg_bigm.enable_recheck
pg_bigm.gin_key_limit
pg_bigm.similarity_limit
如要瞭解如何設定旗標,以及查看這個擴充功能支援的旗標,請參閱「設定資料庫標記」。
pg_cron
如要在執行個體上開始使用 pg_cron,請將 cloudsql.enable_pg_cron
標記設為 on
。如要瞭解如何設定旗標,以及查看這個擴充功能支援的旗標,請參閱「設定資料庫旗標」。
工作會設為背景工作站,因此您可能需要使用標準 PostgreSQL 技巧 (例如 max_worker_processes
標記) 調整這些背景工作站的數量。
針對這個擴充功能,Cloud SQL 支援背景工作者模式,但不支援 libpq 介面。因此,您不需要直接涉及此擴充功能的信任驗證。
pgfincore
這個擴充功能包含用於管理 PostgreSQL 作業系統磁碟快取記憶體中的頁面功能。詳情請參閱 pgfincore 說明文件。
pg_freespacemap
這個擴充功能會檢查可用空間地圖 (FSM)。詳情請參閱 PostgreSQL 說明文件中的 pg_freespacemap。
pg_hint_plan
如要在執行個體上開始使用這個擴充功能,請將 cloudsql.enable_pg_hint_plan
標記設為 on
。如要瞭解如何設定旗標,以及查看此擴充功能支援的旗標,請參閱「設定資料庫旗標」。
或者,如果只有具有 cloudsqlsuperuser
角色的使用者,您可以使用 load
指令,為單一工作階段載入此擴充功能。
pg_partman
這項擴充功能可讓您建立及管理以時間和序列為基礎的資料表區塊組合。
在 Cloud SQL 中,這個擴充功能不包含用於自動區隔維護作業的背景工作站。相反地,您可以使用 Cloud Scheduler 定期呼叫維護函式,以便執行維護作業。
pg_proctab
以下是使用 pg_proctab 擴充功能啟用 pg_top 公用程式的步驟:
- 在 psql 工具中,針對 pg_proctab 執行 CREATE EXTENSION 指令。
- 下載並執行 pg_top。
- 連線至 PostgreSQL 適用的 Cloud SQL 執行個體時,請新增
-r
選項,以便連線至遠端資料庫,取得指標。
以下是輸出內容中列出的全執行個體指標,其中包含執行個體中其他支援代理程式和服務的用量:
- 負載平均
- CPU 狀態 (% user、nice、system、idle 和 iowait)
- 記憶體 (已使用、可用和快取)
pg_repack
這項擴充功能可讓您從資料表和索引中移除多餘的資料。您可以選擇使用這個擴充功能執行線上叢集 (依叢集索引排序資料表)。詳情請參閱 pg_repack 說明文件。此外,如要在 Cloud SQL 中使用這個擴充功能,您必須使用特殊程序為使用者新增權限。
如果 cloudsqlsuperuser
角色以外的使用者想要使用擴充功能,您必須授予使用者 cloudsqlsuperuser
權限。詳情請參閱本文件的「超級使用者權限規定」一節。以下範例使用 GRANT
指令新增必要權限。
新增權限範例
以下範例中,csuper1
是 cloudsqlsuperuser
,testdb
是 testuser
擁有的資料庫。如要在 testdb
中建立 pg_repack 擴充功能,請先執行下列指令:
以
cloudsqlsuperuser
身分連線至testdb
:psql -U csuper1 -d testdb;
將資料庫擁有者 (
testuser,
) 授予csuper1
:GRANT testuser TO csuper1;
建立擴充功能:
CREATE EXTENSION pg_repack;
在資料表上執行
pg_repack
指令 (例如testdb
中的t1
),如下所示:csuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
在 pg_repack 作業完成後,請撤銷您在步驟 2 中執行的授權:
REVOKE testuser FROM csuper1;
pg_repack
指令可能會失敗並出現以下錯誤:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
如果發生此錯誤,請嘗試將 TCP keepalive 設為較小的值,然後執行 pg_repack
指令。詳情請參閱「連線逾時 (來自 Compute Engine)」。
pg_squeeze
這個擴充功能會從資料表中移除未使用的空間,並可選擇使用索引來排序資料表的元組。如要在執行個體上開始使用擴充功能,請將 cloudsql.enable_pg_squeeze
旗標設為 on
。
這個擴充功能還支援邏輯解碼功能,可將額外資訊寫入預先寫入記錄檔 (WAL)。如要為擴充功能啟用這項功能,請將 cloudsql.logical_decoding
旗標設為 on
,並將 wal_level
設定為 logical
以上版本。
擴充功能需要為 max_replication_slots
旗標設定值。如果您尚未指定此標記的值,請將值設為 1
。否則,請將旗標的值加上 1。
如要瞭解如何設定旗標,以及查看這個擴充功能支援的旗標,請參閱「設定資料庫旗標」。
pgtt
如要在執行個體上開始使用這個擴充功能,請將 pgtt.enabled
標記設為 on
。如要瞭解如何設定旗標,以及查看此擴充功能支援的旗標,請參閱「設定資料庫旗標」。
pg_visibility
這項擴充功能提供一種方法,可檢查資料表的顯示範圍地圖 (VM) 和頁面層級顯示範圍資訊。詳情請參閱 PostgreSQL 說明文件中的 pg_visibility。
PL/Proxy
這個擴充功能是程序語言處理程序,可在 PostgreSQL 資料庫之間進行遠端程序呼叫,並提供可選的分割功能。
詳情請參閱 PL/Proxy 說明文件。
連線的目標執行個體必須與連線的執行個體位於相同的虛擬私有雲網路中。此外,您無法在Google Cloud 主控台中為叢集執行個體選擇「僅允許 SSL 連線」按鈕。
如要連線至同一個執行個體中的資料庫,您無法將主機設為 localhost 或 127.0.0.1
。您必須使用 Google Cloud 主控台中顯示的執行個體 IP 位址。
另請參閱本文中的 postgres_fdw 和 dblink。
postgresql_anonymizer
如要在執行個體上開始使用這個擴充功能,請將 cloudsql.enable_anon
標記設為 on
。如要瞭解如何設定旗標,以及查看此擴充功能支援的旗標,請參閱「設定資料庫旗標」。
postgres_fdw
這項擴充功能可讓其他 (「外部」) PostgreSQL 資料庫的資料表,在目前資料庫中顯示為「外部」資料表。這些資料表就會可供使用,幾乎就像是本機資料表一樣。詳情請參閱 PostgreSQL 說明文件中的 postgres_fdw。
這個擴充功能適用於同一個 VPC 網路中的兩個 Cloud SQL 私人 IP 執行個體,或同一個執行個體中的跨資料庫。
如要連線至同一個執行個體中的資料庫,您無法將主機設為 localhost 或 127.0.0.1
。您必須改用 Google Cloud 控制台顯示的執行個體 IP 位址。
此外,如果是儲存外部資料的執行個體,您可以在 Google Cloud 控制台中選擇「僅允許 SSL 連線」選項。您無法選擇「要求使用信任的用戶端憑證」選項。只有 cloudsqlsuperuser
可以是 postgres_fdw
外部資料包裝函式的擁有者。
postgresql-hll
這個擴充功能會引進新的資料類型 hll
,這是 HyperLogLog 資料結構。詳情請參閱 postgresql-hll 說明文件。