【PostgreSQL】pg各版本選用取舍邏輯與docker安裝postgres:15

企業常用 PostgreSQL 版本推薦

1. PostgreSQL 14(最常見,穩定)
  • 目前許多企業仍在使用 PostgreSQL 14,因為它在性能、并發處理、JSON 支持等方面做了較多優化,同時又非常穩定。
  • 官方支持時間2026 年 11 月 之前提供更新和安全修復。
  • 適用于:大多數企業生產環境。
2. PostgreSQL 15(新特性但較新)
  • 提供更好的 MERGE 語句支持(類似 SQL Server 的 UPSERT),性能優化更強。
  • 適用于愿意升級到較新版本,但又不想冒 PostgreSQL 16 可能存在的新版本風險的企業。
  • 官方支持時間2027 年 11 月
3. PostgreSQL 13(部分老企業仍在使用)
  • 仍然有許多老企業使用 PostgreSQL 13,因為它穩定,且比 12 版本有更好的 JSON 處理能力和查詢優化。
  • 官方支持時間2025 年 11 月
  • 適用于:已有 PostgreSQL 13 生產環境的企業,短期內不會升級。
4. PostgreSQL 16(最新,但企業少用)
  • 2023 年 9 月發布,優化了查詢并行性、工作負載管理,但因為較新,企業采用率還不高。
  • 適用于:希望使用最新特性的企業,但不適用于保守的生產環境。

企業推薦版本總結

版本適用場景官方支持時間企業使用率
PostgreSQL 14最佳選擇,穩定,性能好2026 年 11 月?????
PostgreSQL 15適合需要新功能但不想冒險2027 年 11 月????
PostgreSQL 13兼容性好,部分企業仍用2025 年 11 月???
PostgreSQL 16最新,但企業采用較少2028 年 11 月??

企業中常用的 PostgreSQL 鏡像類型

docker pull PostgreSQL 鏡像時,常見的選擇有:

  1. postgres:latest(最新穩定版)
  2. postgres:<版本號>(指定版本,例如 postgres:14
  3. postgres:<版本號>-alpine(輕量級 Alpine 版本,例如 postgres:14-alpine

1. Alpine 版(postgres:<版本>-alpine

Alpine 鏡像是什么?

-alpine 版本基于 Alpine Linux,它是一個極小的 Linux 發行版(基礎鏡像通常只有 5MB 左右)。例如:

docker pull postgres:14-alpine

與標準版 postgres:14 相比:

  • 體積更小(Alpine 版本約 20MB,標準版約 200MB+
  • 啟動更快,但功能有所取舍

Alpine 版會缺少什么?

  • 缺少 GNU 庫(glibc):Alpine 使用 muslbusybox,一些依賴 glibc 的應用可能無法運行。
  • 某些擴展不兼容
    • 一些 PostgreSQL 插件(如 postgis)可能無法直接安裝,需要手動編譯。
    • 可能缺少一些 libpq 相關的工具(可以通過 apk add postgresql-client 安裝)。
  • 性能略有下降
    • 由于 Alpine 采用 musl 而不是 glibc,某些高并發/高負載場景下的數據庫操作可能比標準版稍慢(但差距不大)。

2. 企業環境應該選擇哪種鏡像?

鏡像版本體積適用場景是否推薦企業使用
postgres:latest大(約 200MB+)開發/測試/生產? 推薦
postgres:14大(約 200MB+)企業生產環境(穩定)? 強烈推薦
postgres:14-alpine小(約 20MB)輕量化部署,資源受限環境(如 IoT)?? 不推薦用于企業生產
postgres:14-slim適中(約 50MB)一般生產環境,無需擴展支持? 可選
postgres:14-bullseye適中需要 Debian 兼容環境? 推薦(更兼容)

企業生產環境建議使用 postgres:14postgres:14-slim,因為它們兼容性更好,功能完整。


3. 什么時候適合用 Alpine 版?

? 適用場景:

  • 資源受限的 小型應用,如嵌入式設備、CI/CD 測試環境、Docker Swarm、Kubernetes 輕量化部署。
  • 你確定你的應用 不依賴 PostgreSQL 擴展(如 postgis)。
  • 需要 極小的鏡像,減少帶寬和存儲占用。

? 不適用場景:

  • 生產環境(特別是企業級數據庫,穩定性比大小更重要)。
  • 需要 復雜插件支持,如 postgisplpython 等。
  • 高負載 的 OLTP/OLAP 系統(可能因 musl 影響而性能略有下降)。

適用于學習場景的pgsql選用----ubuntu22.04

1. 拉取 postgres:15 鏡像

docker pull postgres:15

2. 運行 PostgreSQL 15(Slim 版)

docker run -d \--name my_postgres \-e POSTGRES_USER=root \-e POSTGRES_PASSWORD=123456 \-e POSTGRES_DB=db \-p 5432:5432 \-v pg_data:/var/lib/postgresql/data \postgres:15
  • 連接方式:
docker exec -it my_postgres psql -U root -d db

-v pg_data:/var/lib/postgresql/data 參數理解

位置作用
pg_data宿主機上的 Docker 容器卷(實際存儲 PostgreSQL 數據)通常是/var/lib/docker/volumes/pg_data/
/var/lib/postgresql/data容器內部的數據庫存儲目錄
-v pg_data:/var/lib/postgresql/data將容器卷 pg_data 綁定到容器 /var/lib/postgresql/data,實現數據持久化,確保在你docker因為某原因關了之后能在docker的卷里pg_data找到備份
  • 一般在linux中,先用docker volume inspect找到容器卷的掛載點
docker volume inspect pg_data

輸出類似

[{"Name": "pg_data","Driver": "local","Mountpoint": "/var/lib/docker/volumes/pg_data/_data","Scope": "local"}
]
  • Mountpoint 指向 /var/lib/docker/volumes/pg_data/_data,這說明 真實的數據存放在宿主機的這個目錄中。

可以用ls查看是否有數據,

ls /var/lib/docker/volumes/pg_data/_data

https://github.com/0voice

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/74439.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74439.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/74439.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加導出數據功能

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏+關注哦 ?? 目錄 DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加導出數據功能??頁面效果??指令輸入?…

《Python實戰進階》第31集:特征工程:特征選擇與降維技術

第31集&#xff1a;特征工程&#xff1a;特征選擇與降維技術 摘要 特征工程是機器學習和數據科學中不可或缺的一環&#xff0c;其核心目標是通過選擇重要特征和降低維度來提升模型性能并減少計算復雜度。本集聚焦于特征選擇與降維技術&#xff0c;涵蓋過濾法、包裹法、嵌入法等…

避雷 :C語言中 scanf() 函數的錯誤?使用!!!

1. 返回值說明 scanf函數會返回成功匹配并賦值的輸入項個數&#xff0c;而不是返回輸入的數據。 可以通過檢查返回值數量來確認輸入是否成功。若返回值與預期不符&#xff0c;就表明輸入存在問題。 #include <stdio.h>int main() {int num;if (scanf("%d", …

Excel第41套全國人口普查

2. 導入網頁中的表格&#xff1a;數據-現有鏈接-考生文件夾&#xff1a;網頁-找到表格-點擊→變為√-導入刪除外部鏈接關系&#xff1a;數據-點擊鏈接-選中連接-刪除-確定&#xff08;套用表格格式-也會是刪除外部鏈接&#xff09;數值縮小10000倍&#xff08;除以10000即可&am…

WPS宏開發手冊——使用、工程、模塊介紹

目錄 系列文章前言1、開始1.1、宏編輯器使用步驟1.2、工程1.3、工程 系列文章 使用、工程、模塊介紹 JSA語法 第三篇練習練習題&#xff0c;持續更新中… 前言 如果你是開發人員&#xff0c;那么wps宏開發對你來說手拿把切。反之還挺吃力&#xff0c;需要嘻嘻&#xf…

EtherCAT轉CANopen配置CANopen側的PDO映射

EtherCAT轉CANopen配置CANopen側的PDO映射 在工業自動化領域&#xff0c;EtherCAT和CANopen是兩種廣泛應用的通信協議。它們各自具有獨特的優勢&#xff0c;但在某些應用場景下&#xff0c;需要將這兩種協議進行轉換以實現設備間的高效數據交換。本文將詳細介紹如何在使用Ethe…

【QT】Qt creator快捷鍵

Qt creator可以通過以下步驟快捷鍵査看調用關系&#xff1a; 1.打開代碼文件。 2.將光標放在你想要查看調用關系的函數名上。 3.按下鍵盤快捷鍵 CtrlshiftU。 4.彈出菜單中選擇“調用路徑”或“被調用路徑” 5.在彈出的窗口中可以查看函數的調用關系 折疊或展開代碼快捷鍵&…

【RHCE】LVS-NAT模式負載均衡實驗

目錄 題目 IP規劃 配置IP RS1 RS2 RS3 LVS client 配置RS 配置LVS 安裝lvs軟件 啟動ipvsadm服務 lvs規則匹配 ipvsadm部分選項 客戶端測試 總結 題目 使用LVS的 NAT 模式實現 3 臺RS的輪詢訪問&#xff0c;IP地址和主機自己規劃。 IP規劃 主機IP地址RS1-nat模…

排序算法(插入,希爾,選擇,冒泡,堆,快排,歸并)

1.插入排序 插入排序的主要思想是額外申請一個空間cur&#xff0c;讓cur一開始等于數組的第1號位置,設置i1&#xff0c;讓i-1的元素與其比較&#xff0c;如果arr[i-1]>arr[i]&#xff0c;就讓arr[i1] arr[i]&#xff0c;當進行到最后一次對比結束&#xff0c;i-1,再讓arr[…

Java——Random庫

一、作用 Random庫——生成隨機數 二、實現步驟 1.導包&#xff1a;import java.util.Random; #快捷鍵&#xff1a;“Random”回車鍵 2.取得隨機數&#xff1a;Random 變量1 new Random(); 3.調用隨機數&#xff1a;類型 變量2 變量1.nextInt(n); &#xff08;代表變量…

解線性方程組的直接方法:高斯消元法與其程序實現

解線性方程組的直接方法&#xff1a;高斯消元法與其程序實現 1.順序高斯消元法 設線性方程組 A x b \boldsymbol{Ax}\boldsymbol{b} Axb 如果 a k k ( k ) ≠ 0 a_{kk}^{\left( k \right)}\ne 0 akk(k)??0 可以通過高斯消元法轉化為等價的三角形線性方程組&#xff1a; …

LiteIDE中配置golang編譯生成無CMD窗口EXE的步驟

LiteIDE中配置golang編譯生成無CMD窗口EXE的步驟 一、環境配置1、設置GOROOT?2、配置GOPATH? 二、項目編譯參數設置1、新建/打開項目?2、修改編譯配置?3、其他優化選項&#xff08;可選&#xff09;? 三、構建與驗證1、編譯生成EXE?2、驗證無窗口效果? 四、注意事項 一、…

Maya基本操作

基本操作 按住ALT鍵&#xff0c;左鍵旋轉視角&#xff0c;中鍵平移視角&#xff0c;右鍵放大縮小視角。 按空格鍵切換4格視圖。 導入FBX格式文件后&#xff0c;無貼圖顯示。 按6鍵開啟。著色紋理顯示 坐標軸相關 修改菜單-左鍵最上面的虛線。固定修改選項窗口。 選中物體…

Windows打開ftp局域網共享

前提是windows已經設置好開機賬號密碼了&#xff0c;否則教程不適用 第一先打開電腦ftp共享配置 點擊保存即可 2.設置要共享到其他電腦的文件路徑&#xff08;如果你要共享整個盤你就設置整個盤&#xff0c;如果是共享盤中某文件就設置某文件&#xff0c;這里是某文件&#x…

overleaf中會議參考文獻使用什么標簽:inproceedings

overleaf中會議參考文獻使用什么標簽 會議論文在LaTeX文獻條目中應使用 @inproceedings 標簽,而非 @article。根據你提供的內容,修正后的格式如下: @inproceedings{asai2023self, author = {Asai, Akari and Wu, Zeqiu and Wang, Yizhong and Sil, Avirup and Hajishirzi,…

一文詳解redis

redis 5種數據類型 string 字符串是 Redis 里最基礎的數據類型&#xff0c;一個鍵對應一個值。 設置值 SET key value例如&#xff1a; SET name "John"獲取值 GET key例如&#xff1a; GET namelist 列表是簡單的字符串列表&#xff0c;按插入順序排序。 在列…

第16章:基于CNN和Transformer對心臟左心室的實驗分析及改進策略

目錄 1. 項目需求 2. 網絡選擇 2.1 UNet模塊 2.2 TransUnet 2.2.1 SE模塊 2.2.2 CBAM 2.3 關鍵代碼 3 對比試驗 3.1 unet 3.2 transformerSE 3.3 transformerCBAM 4. 結果分析 5. 推理 6. 下載 1. 項目需求 本文需要做的工作是基于CNN和Transformer的心臟左心室…

【AI】知識蒸餾-簡單易懂版

1 緣起 最近要準備升級材料&#xff0c;里面有一骨碌是介紹LLM相關技術的&#xff0c;知識蒸餾就是其中一個點&#xff0c; 不過&#xff0c;只分享了蒸餾過程&#xff0c;沒有講述來龍去脈&#xff0c;比如沒有講解Softmax為什么引入T、損失函數為什么使用KL散度&#xff0c;…

批量將PPT轉換成多張圖片

以下是一個使用Python將PowerPoint文件&#xff08;PPT/PPTX&#xff09;批量轉換為多張圖片的代碼示例。該方案通過comtypes庫調用本地Office的COM接口實現轉換&#xff0c;需確保已安裝Microsoft PowerPoint。 import os import comtypes.client from comtypes import COMEr…

單例模式的經典實現

單例模式&#xff08;Singleton&#xff09;是一種創建型設計模式&#xff0c;它確保一個類只有一個實例&#xff0c;并提供一個全局訪問點。在MyBatis、Redisson、AMQP等依賴包中&#xff0c;單例模式被廣泛應用。以下是這些框架中單例模式的經典實現及舉例&#xff1a; 1. My…