我們上週的教學以 DVD 租賃資料庫 為例子,介紹了在 PostgreSQL 中建立具體化檢視。正如我們學到的,PostgreSQL 具體化檢視提供了一種強大的機制,透過預先計算查詢結果集並將其儲存為實體資料表,從而提升查詢效能。今天的後續內容將涵蓋其他相關的具體化檢視作業,例如重新整理檢視、對其執行查詢以及刪除不再需要的檢視。與上一篇文章一樣,我們將介紹如何使用 DML 陳述式以及如何透過 Navicat GUI 做到相同的效果。
重新整理具體化檢視
具體化檢視的資料需要定期重新整理,以反映基礎資料表的任何變更。你可以使用以下命令重新整理具體化檢視:
REFRESH MATERIALIZED VIEW mv_category_revenue;
在 Navicat 中,我們可以在「物件」索引標籤中以滑鼠右鍵按一下(在 macOS 上是按住 Control 鍵並按一下)具體化檢視,然後從快顯功能表中選取「重新整理具體化檢視與」->「資料」或「沒有資料」,來重新整理並完全取代具體化檢視的內容:
查詢具體化檢視
現在我們有一個具體化檢視,可以像查詢任何其他資料表一樣查詢它:
SELECT * FROM mv_category_revenue;
此查詢將傳回電影類別及它們的總收入,它提供了一種快速高效的方法來擷取這些資訊,而無需重複連接多個資料表。
在 Navicat 中,你可以在查詢編輯器中或使用查詢建立工具編寫查詢。只需在查詢編輯器中輸入幾個字元,自動完成程式碼功能就能識別並顯示具體化檢視的名稱!
具體化檢視也包含在查詢建立工具的物件窗格中。你可以透過將具體化檢視從物件窗格拖動到圖表窗格中,或在物件窗格中按兩下具體化檢視,將其新增至查詢:
刪除具體化檢視
如果你不再需要一個具體化檢視,可以使用 DROP MATERIALIZED VIEW 命令將其刪除。以下是刪除 mv_category_revenue 檢視的陳述式:
DROP MATERIALIZED VIEW mv_category_revenue;
在 Navicat 中刪除具體化檢視有幾種方法。第一種方法是:
- 在主視窗的工具列中選取「具體化檢視」。
- 接著在物件清單中選取要刪除的具體化檢視。這將啟用物件工具列上的多個按鈕,包括「刪除具體化檢視」按鈕:
- 按一下「刪除具體化檢視」按鈕將彈出一個對話方塊提示,確認你確實希望刪除所選的具體化檢視。
在Navicat 中刪除具體化檢視的第二個方法是在主視窗的導覽窗格或物件清單中以滑鼠右鍵按一下它(在 macOS 上是按住 Control 鍵並按一下),然後從內容功能表中選取「刪除具體化檢視」:
總結
在本教學中,我們學習了如何執行一些相關的具體化檢視作業,包括重新整理檢視、對其執行查詢以及刪除檢視。我們展示了每種作業是如何使用 DML 陳述式以及如何透過 Navicat GUI 做到相同的效果。