⚠ 這是歷史版本頁面 — 查看 PostgreSQL 最新版本 →
PostgreSQL 軟體圖示

PostgreSQL 9.5.4

v 9.5.4
Windows ↔ 也有 macOS 版 開源軟體 7.98/10 (214)

編輯短評

PostgreSQL 是一款強大的開源關聯式資料庫系統,旨在提供可靠且正確的資料儲存解決方案。它支援絕大多數的 SQL 資料型別以及圖片、聲音與影像等二進位資料,並提供多種原生程式設計介面供開發者調用。由於其架構經過嚴格驗證且長期維護,在同類工具中屬於主流首選,是追求穩定性與功能強大的免費資料庫方案。

這套軟體適合需要自行架設網站的中小企業或軟體開發者,尤其在對系統記憶體佔用較敏感的情境下非常實用。相較於部分針對特定功能收費的替代方案,PostgreSQL 提供了極具競爭力的開源選擇。使用者在下載前需留意其主要支援英文語系,且可運行於 Windows、macOS 及 Linux 等多數主流作業系統。

軟體介紹

PostgreSQL 是一款功能強大、開放原始碼的物件關聯式資料庫系統。它歷經超過 15 年的積極開發,其成熟的架構為可靠性、資料完整性與正確性贏得了良好聲譽。

它可在所有主流作業系統上執行,包括 Linux、UNIX(AIX、BSD、HP-UX、SGI IRIX、macOS、Solaris、Tru64)以及 Windows。PostgreSQL 是一款強大的物件關聯式資料庫管理系統!下載適用於 PC 的 PostgreSQL 離線安裝程式 64 位元版本!

它完全符合 ACID 規範,並完整支援外部鍵、聯結、檢視、觸發器以及預存程序(支援多種語言)。它包含大多數 SQL:2008 資料型別,包括 INTEGER、NUMERIC、BOOLEAN、CHAR、VARCHAR、DATE、INTERVAL 和 TIMESTAMP。

它也支援儲存二進位大型物件,包括圖片、音訊或影片。它具備 C/C++、Java.Net、Perl、PythonRuby、Tcl、ODBC 等原生程式設計介面,並提供卓越的文件(資料表大小最高可達 32 TB)。

PostgreSQL 2026 具備許多功能,旨在協助開發人員建置應用程式、協助管理員保護資料完整性並建置容錯環境,同時協助您管理任何規模的資料集。除了免費且開放原始碼之外,這款工具還具有高度擴充性。

例如,您可以定義自己的資料型別、建立自訂函式,甚至使用不同的程式語言撰寫程式碼,而無需重新編譯資料庫!

此應用程式力求在符合 SQL 標準的同時,不與傳統功能牴觸,也不會導致不良的架構決策。

SQL 標準要求的許多功能都已支援,不過有時語法或功能會略有差異。未來可望進一步提升標準符合度。

功能與重點

資料型別
  • 基本型別:整數、數值、字串、布林值
  • 結構化:日期/時間、陣列、範圍、UUID
  • 文件型別:JSON/JSONB、XML、鍵值對(Hstore)
  • 幾何型別:點、線、圓、多邊形
  • 自訂:複合型別、自訂型別
資料完整性
  • UNIQUE、NOT NULL
  • 主鍵
  • 外部鍵
  • 排除約束
  • 明確鎖定、建議鎖定
並行性與效能
  • 索引:B-tree、多欄位、運算式、部分索引
  • 進階索引:GiST、SP-GiST、KNN GiST、GIN、BRIN、涵蓋索引、布隆過濾器
  • 精密的查詢規劃器/最佳化器、僅索引掃描、多欄位統計
  • 交易、巢狀交易(透過儲存點)
  • 多版本並行控制(MVCC)
  • 讀取查詢與建立 B-tree 索引的平行化
  • 資料表分割
  • SQL 標準定義的所有交易隔離層級,包括可序列化
  • 運算式的即時(JIT)編譯
可靠性與災難復原
  • 預寫式記錄(WAL)
  • 複寫:非同步、同步、邏輯
  • 時間點復原(PITR)、主動備援
  • 資料表空間
安全性
  • 驗證:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、憑證等
  • 健全的存取控制系統
  • 欄位與列層級安全性
擴充性
  • 預存函式與程序
  • 程序語言:PL/pgSQL、Perl、Python(以及更多)
  • 外部資料包裝器:透過標準 SQL 介面連線至其他資料庫或串流
  • 許多提供額外功能的擴充套件,包括 PostGIS
國際化與全文檢索
  • 支援國際字元集,例如透過 ICU 定序
  • 全文檢索
使用方式
  • 從官方網站或 FileHorse.com 下載並安裝此程式
  • 開啟 pgAdmin 或使用命令列進行資料庫管理
  • 使用 pgAdmin 介面建立新資料庫
  • 使用 SQL 查詢來建立、讀取、更新和刪除資料
  • 設定使用者角色與權限以確保安全性
  • 使用 pgAdmin 或命令列備份與還原資料庫
  • 使用索引與查詢調校來最佳化效能
  • 使用 PostgreSQL 相容驅動程式連線應用程式
  • 使用內建記錄工具監控資料庫活動
  • 保持 PostgreSQL 更新以確保安全性與效能
系統需求

作業系統:Windows 11 或 Windows 10(64 位元)

處理器:Intel 或 AMD 64 位元處理器

記憶體:最低 2GB,建議 4GB 或以上

儲存空間:安裝至少需要 100MB,資料儲存另需更多空間

其他需求:需要 Microsoft Visual C++ 可轉散發套件

優點
  • 開放原始碼且免費使用
  • 進階安全性功能
  • 高擴充性與效能
  • 支援複雜查詢與索引
  • 強大的社群與文件
缺點
  • 需要手動效能調校
  • 某些情況下記憶體使用量較高
  • 內建 GUI 管理工具有限
  • 升級可能需要手動調整
另有提供:下載 PostgreSQL for Mac

下載 PostgreSQL 最新版本 為什麼此應用程式發佈在 FileHorse 上?(更多資訊

畫面截圖

5 張

更新日誌

9.5.4

- Fix possible mis-evaluation of nested CASE-WHEN expressions. A CASE expression appearing within the test value subexpression of another CASE could become confused about whether its own test value was null or not. Also, inlining of a SQL function implementing the equality operator used by a CASE expression could result in passing the wrong test value to functions called within a CASE expression in the SQL function's body. If the test values were of different data types, a crash might result; moreover such situations could be abused to allow disclosure of portions of server memory.
- Fix client programs' handling of special characters in database and role names.
- Fix corner-case misbehaviors for IS NULL/IS NOT NULL applied to nested composite values
- Fix "unrecognized node type" error for INSERT ... ON CONFLICT within a recursive CTE (a WITH item)
- Fix INSERT ... ON CONFLICT to successfully match index expressions or index predicates that are simplified during the planner's expression preprocessing phase
- Correctly handle violations of exclusion constraints that apply to the target table of an INSERT ... ON CONFLICT command, but are not one of the selected arbiter indexes Such a case should raise a normal constraint-violation error, but it got into an infinite loop instead.
- Fix INSERT ... ON CONFLICT to not fail if the target table has a unique index on OID
- Make the inet and cidr data types properly reject IPv6 addresses with too many colon-separated fields
- Prevent crash in close_ps() (the point ## lseg operator) for NaN input coordinates.Make it return NULL instead of crashing.
- Avoid possible crash in pg_get_expr() when inconsistent values are passed to it
- Fix several one-byte buffer over-reads in to_number()
- Do not run the planner on the query contained in CREATE MATERIALIZED VIEW or CREATE TABLE AS when WITH NO DATA is specified
- Avoid unsafe intermediate state during expensive paths through heap_update()
- Fix hint bit update during WAL replay of row locking operations
- Avoid unnecessary "could not serialize access" errors when acquiring FOR KEY SHARE row locks in serializable mode
- Make sure "expanded" datums returned by a plan node are read-only
- Avoid crash in postgres -C when the specified variable has a null string value
- Prevent unintended waits for the receiver in WAL sender processes
- Fix possible loss of large subtransactions in logical decoding
- Fix failure of logical decoding when a subtransaction contains no actual changes
- Ensure that backends see up-to-date statistics for shared catalogs
- Avoid redundant writes of the statistics files when multiple backends request updates close together
- Avoid consuming a transaction ID during VACUUM
- Prevent possible failure when vacuuming multixact IDs in an installation that has been pg_upgrade'd from pre-9.3
- When a manual ANALYZE specifies a column list, don't reset the table's changes_since_analyze counter
- Fix ANALYZE's overestimation of n_distinct for a unique or nearly-unique column with many null entries
- Prevent autovacuum from starting multiple workers for the same shared catalog
- Fix bug in b-tree mark/restore processing
- Avoid duplicate buffer lock release when abandoning a b-tree index page deletion attempt
- Fix building of large (bigger than shared_buffers) hash indexes
- Prevent infinite loop in GiST index build for geometric columns containing NaN component values
- Fix possible crash during a nearest-neighbor (ORDER BY distance) indexscan on a contrib/btree_gist index on an interval column
- Fix "PANIC: failed to add BRIN tuple" error when attempting to update a BRIN index entry
- Fix possible crash during background worker shutdown
- Fix PL/pgSQL's handling of the INTO clause within IMPORT FOREIGN SCHEMA commands
- Fix contrib/btree_gin to handle the smallest possible bigint value correctly
- Teach libpq to correctly decode server version from future servers
- Fix ecpg's code for unsigned long long array elements
- In pg_dump with both -c and -C options, avoid emitting an unwanted CREATE SCHEMA public command
- Improve handling of SIGTERM/control-C in parallel pg_dump and pg_restore
- Fix error reporting in parallel pg_dump and pg_restore
- Ensure that parallel pg_dump or pg_restore on Windows will shut down properly after an error
- Make parallel pg_dump fail cleanly when run against a standby server
- Make pg_dump behave better when built without zlib support
- Make pg_basebackup accept -Z 0 as specifying no compression
- Fix makefiles' rule for building AIX shared libraries to be safe for parallel make
- Fix TAP tests and MSVC scripts to work when build directory's path name contains spaces
- Be more predictable about reporting "statement timeout" versus "lock timeout"
- Make regression tests safe for Danish and Welsh locales
- Update our copy of the timezone code to match IANA's tzcode release 2016c
- Update time zone data files to tzdata release 2016f for DST law changes in Kemerovo and Novosibirsk, plus historical corrections for Azerbaijan, Belarus, and Morocco.

歷史版本

完整清單 →