![image](https://hackmd.io/_uploads/BkgBV7W0Jx.png) PostgreSQL 是一套功能完整的「關聯式資料庫系統」(Relational Database Management System, RDBMS),用來儲存、查詢、管理資料。 ## 特點 - 最早由加州大學柏克萊分校開發(原名 Postgres),後來由社群接手成長 - 被大量用於科技業、GIS 領域、金融系統、開源平台(如 Supabase、Neon) - 設計理念偏重「標準」、「穩定」、「安全性」 簡單說,它是一套穩定、彈性高、能長期維護的大型資料庫系統,對開發者非常友善。 ## 優缺點 以下列出優缺點,內容參考自 [iT邦幫忙|[Day15] 資料庫 - 介紹與比較](https://ithelp.ithome.com.tw/articles/10206222): ### 優點 * 更加開放,貼近社群 * 跟 MySQL 相同,都為開源軟體,但 Postgre 的設計上又更加以社群需求為導向去設計。 * 商業應用導向 * 設計更新皆以商業應用導向為主 * 像是最重要的 『transaction 』,資料的交易機制,擁有更嚴格的測試驗證和設計機制。 * Store Procedure 和 View 功能強化 * Store Procedure 是類似資料庫裡的『函式』功能,可以在資料庫裡撰寫邏輯。 * View 則是把資料庫的複雜查詢語句,直接儲存起來,當做一個 table。 * 適合邏輯更複雜的應用。 * 地理結構資料類型 * PostgreSQL 非常適合製作有地理相關功能的應用程式,除了提供專屬的資料類型,也提供相關的資料庫函式,非常方便。 ### 缺點 * 結構龐大 * PostgreSQL 因為有許多商業性的功能應用,因此容量大小上較為巨大,可能對於較小型的伺服器是個負擔。 * 複雜的查詢會導致效能低落 * 主要是因為 PostgreSQL 軟體本身結構的緣故。 ## 與 MSSQL 比較 因為之前用過 MSSQL,不免的還是要與它比較一下: | 項目 | PostgreSQL | MSSQL(SQL Server) | |------------------|--------------------------------|----------------------------------| | 授權 | 開源、免費 | 微軟產品,需授權 | | 平台相容性 | 各種系統(Mac/Linux/Win) | Windows 為主 | | 擴充性 | 超高,支援 PostGIS、JSONB 等 | 較封閉,擴充功能較有限 | | 地理資料處理 | 支援 PostGIS 擴充,可進行高階地理分析 | 內建空間資料支援,但功能封閉,進階功能需商業版 | | 社群資源 | 社群活躍、文件多 | 偏向企業內使用,社群資源中等 | ### 那為何還是有很多公司用 MSSQL? 雖然 PostgreSQL 功能完整又免費,但 MSSQL 仍然在企業界大量使用,原因包括: - 與微軟生態系整合好,例如搭配 .NET / C# / Azure 最順 - 支援 AD / SSO 權限控管 - 可搭配 Power BI、SSRS 製作商業報表 - 很多 ERP、財務、政府系統早期以 MSSQL 架構,難以遷移 - IT 團隊習慣微軟工具鏈,培訓與維護成本低 MSSQL 是「企業導向、微軟導向」的資料庫,PostgreSQL 則是「開發者導向、開源導向」。