PostgreSQL - 第 29 天 - 高可用性設計
課程簡介 高可用性設計確保數據庫在發生故障時仍能提供服務,以最小的中斷持續運行。今天我們將學習 PostgreSQL 中實現高可用性的主要方法,包括主從複製、流式複製、自動故障轉移和備援集群等技術。透過這些技術,可以大幅提升數據庫系統的可靠性和容錯能力。 高可用性概念 在 PostgreSQL 中,高可用性通常通過數據複製和自動故障轉移來實現: 數據複製:將數據庫數據從主服務...
課程簡介 高可用性設計確保數據庫在發生故障時仍能提供服務,以最小的中斷持續運行。今天我們將學習 PostgreSQL 中實現高可用性的主要方法,包括主從複製、流式複製、自動故障轉移和備援集群等技術。透過這些技術,可以大幅提升數據庫系統的可靠性和容錯能力。 高可用性概念 在 PostgreSQL 中,高可用性通常通過數據複製和自動故障轉移來實現: 數據複製:將數據庫數據從主服務...
課程簡介 查詢優化有助於縮短查詢時間、降低資源消耗,從而提升數據庫整體效率。我們將探討索引的應用、查詢計劃的分析、篩選條件的使用和查詢結構的優化等技巧。 查詢優化方法 1. 使用合適的索引 索引能加速查詢,尤其在大數據表中更為顯著。然而,過多或不當的索引反而會拖慢性能,因此需要合理規劃。 單列索引:適用於常用查詢中使用的單一列。 多列索引:適用於多列一起出現在 WHERE...
課程簡介 有效的儲存最佳化不僅能減少磁碟空間使用,還可以提升查詢速度和數據庫整體性能。本文將涵蓋數據壓縮、表和索引的整理、以及高效的數據存儲類型選擇等關鍵技巧。 儲存最佳化方法 1. 使用適當的數據類型 選擇合適的數據類型能顯著減少磁碟空間佔用並加快讀寫速度。以下是一些建議: 整數類型:選擇適合範圍的整數類型,如 SMALLINT (2 bytes)、INTEGER (4 b...
課程簡介 備份和恢復是保障數據安全性的重要措施,特別是在系統故障或數據損壞的情況下,透過定期備份可以確保數據的完整性。PostgreSQL 提供了多種方式來備份和恢復數據,我們會探討基本和進階方法,包括 pg_dump 工具和全數據庫恢復。 備份與恢復的基本概念 備份:備份是將數據庫的數據複製並存儲在其他位置,以便在數據丟失或損壞時進行恢復。常見的備份方式有邏輯備份和物理備份。...
課程簡介 安全性管理是確保 PostgreSQL 數據庫免受未授權訪問和操作的重要步驟。今天我們將學習如何管理數據庫用戶與權限控制,包括用戶創建、角色分配、權限管理及數據庫加密等內容,提升數據庫的安全性。 基本安全性概念 在 PostgreSQL 中,用戶和角色的概念是緊密相關的: 用戶 (User):能夠登入數據庫並執行操作的個體。 角色 (Role):授予用戶權限的一...
課程簡介 今天我們將進一步探索 PostgreSQL 中的高階 JOIN 操作,包括 CROSS JOIN、SELF JOIN、以及結合使用多種 JOIN 來進行複雜查詢。高階 JOIN 能幫助我們處理更複雜的數據關聯,實現多表之間的深入分析。 高階 JOIN 類型介紹 1. CROSS JOIN CROSS JOIN 是一種笛卡兒積操作,會將兩個表中的每一行進行組合。當需要生成所...
課程簡介 視圖和物化視圖都是將查詢結果儲存在數據庫中的方法,讓我們能夠更方便地處理複雜查詢。視圖能夠節省查詢代碼,提高代碼可讀性,而物化視圖則能加快查詢速度,特別適合大型數據量的操作。 視圖 (View) 1. 視圖的作用 視圖是基於查詢語句創建的虛擬表,並不真正儲存數據。使用視圖可以簡化查詢操作、提高代碼重用性,並在一定程度上加強數據安全性,因為我們可以根據需要限制視圖返回的欄位和...
課程簡介 觸發器是一種自動執行的數據庫機制,當特定事件 (如插入、更新或刪除操作) 發生時,會自動執行指定的操作。觸發器可用於維護數據完整性、紀錄變更歷史、以及執行自動化數據處理流程。 觸發器的組成 觸發器主要由兩部分組成: 觸發條件:指定在何時觸發,包括執行的動作 (INSERT、UPDATE、DELETE)、觸發的時間點 (BEFORE 或 AFTER)。 觸發動作:一...
課程簡介 存儲過程和函數可以將一組操作封裝在一起,使其成為獨立的執行單位,這樣不僅能減少重複代碼,還能提高數據庫操作的效率和安全性。存儲過程和函數適合用於實現較複雜的業務邏輯、數據檢查以及自動化處理。 存儲過程與函數的差異 存儲過程:可以使用 CALL 語句執行,不一定有返回值;支援 COMMIT 和 ROLLBACK 等控制交易。 函數:使用 SELECT 或作為表達式的...
課程簡介 CASE 表達式可以根據條件返回不同的結果,是資料查詢中常用的條件控制工具。透過 CASE,可以實現條件篩選、分類、轉換等操作,使查詢結果更靈活且符合業務需求。 基本 CASE 語法 CASE 表達式通常在 SELECT 查詢中使用,根據條件返回不同的值,基本語法如下: CASE WHEN 條件1 THEN 結果1 WHEN 條件2 THEN 結果2 ...