可惜!PostgreSQL 11 將不會預設啟用更快的 JIT 支援
PostgreSQL 今年最酷最創新的一個特性就是 基於 LLVM 的 JIT 支援 —— 可用於加速資料庫查詢。但據最新訊息,在即將釋出的 PostgreSQL 11 版本中,預設情況下不會啟用該特性。
該功能依賴於 LLVM for JIT 來編譯 SQL 查詢,通過利用 LLVM 的即時編譯技術,而不是通過 PostgreSQL 的直譯器來傳遞 SQL 查詢,從而在 PostgreSQL 中通過 JIT 編譯 SQL 查詢,這可以更多地使用執行時資訊,並且特別有助於提升複雜 SQL 查詢的效能,從而生成更高效的程式碼。
PostgreSQL JIT 在某些資料庫基準測試中顯示速度可提升 20%,最新 TPC-H Q1 測試顯示 PostgreSQL JIT 帶來了 30% 的效能提升,而像建立索引這樣的基本任務則提升 5~19%。
PostgreSQL 11還在開發中,已經在向正式版靠近了,當前最新的版本是 PostgreSQL 11 Beta 2。到目前為止,PostgreSQL 11 預設情況下已啟用 JIT 功能, 但據最新訊息 ,開發者目前已決定預設禁用它,以在下一次主要的穩定更新中再次預設啟用。
之所以做出這個決定,是因為他們擔心 JIT 後端會引入一些迴歸錯誤,而且現在還不夠成熟,所以不會預設啟用該功能。但在開發版的 Git 程式碼中,他們會繼續保留這些程式碼,併為其進行額外的測試,希望在 PostgreSQL 12 中可預設啟用該功能。
這個決定是 本週末 確定下來的,關於這個決定的更多細節, 請檢視 PostgreSQL 專案的郵件列表 。