Postgresql

單個 PostgreSQL 查詢可以使用多個核心嗎?

  • July 30, 2021

在最新版本的 PostgreSQL(截至 2013 年 12 月)中,我們可以在兩個或更多核心之間共享查詢以提高性能嗎?還是我們應該獲得更快的核心?

不,對於 v9.6 之前的 PostgreSQL 版本。請參閱PostgreSQL 常見問題解答:PostgreSQL 如何使用 CPU 資源?

PostgreSQL 伺服器是基於程序的(不是執行緒的)。每個數據庫會話連接到單個PostgreSQL 作業系統 (OS)程序。多個會話由作業系統自動分佈在所有可用的 CPU 上。作業系統還使用 CPU 來處理磁碟 I/O 並執行其他非數據庫任務。客戶端應用程序可以使用執行緒,每個執行緒都連接到一個單獨的數據庫程序。

從 9.6 版開始,部分查詢可以在單獨的作業系統程序中並行執行,從而允許使用多個 CPU 核心。版本 10 (max_parallel_workers_per_gather) 中預設啟用並行查詢,預計未來版本中會增加並行度。

引用自:https://dba.stackexchange.com/questions/55019