
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 則是「開發者導向、開源導向」。