-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpostgresql-16-vs-17.html
More file actions
158 lines (157 loc) · 15.3 KB
/
Copy pathpostgresql-16-vs-17.html
File metadata and controls
158 lines (157 loc) · 15.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>PostgreSQL 16 vs 17 vs 18 on Windows — Version Comparison and Upgrade Guide</title>
<meta name="description" content="Compare PostgreSQL 16, 17 and 18 for Windows. New features, end-of-life dates, which version to install, and when to upgrade your existing PostgreSQL on Windows.">
<link rel="canonical" href="https://postgre-sql.github.io/postgresql-16-vs-17.html">
<meta name="last-modified" content="2026-06-08">
<meta property="og:title" content="PostgreSQL 16 vs 17 vs 18 on Windows — Version Comparison and Upgrade Guide">
<meta property="og:description" content="Compare PostgreSQL 16, 17 and 18 for Windows. New features, end-of-life dates, which version to install, and when to upgrade your existing PostgreSQL on Windows.">
<meta property="og:type" content="article">
<meta property="og:url" content="https://postgre-sql.github.io/postgresql-16-vs-17.html">
<meta property="og:image" content="https://postgre-sql.github.io/og-image.svg">
<meta name="twitter:card" content="summary_large_image">
<link rel="icon" href="/favicon.svg">
<link rel="stylesheet" href="/style.css">
</head>
<body>
<nav class="site-nav"><div class="wrap"><div class="nav-inner">
<a href="/index.html" class="nav-logo"><div class="nav-logo-mark">Pg</div><span class="nav-logo-name">PostgreSQL</span><span class="nav-logo-sub">for Windows</span></a>
<div class="nav-links">
<a href="/index.html" id="nl-home">Home</a>
<a href="/download-windows.html" id="nl-dl">Download</a>
<a href="/offline-installer.html" id="nl-off">Offline</a>
<a href="/configure-windows-service.html" id="nl-svc">Service</a>
<a href="/fix-path-issues.html" id="nl-path">PATH fix</a>
<a href="/pgadmin-windows.html" id="nl-pgadmin">pgAdmin</a>
<a href="/postgresql-windows-faq.html" id="nl-faq">FAQ</a>
</div>
<a href="/download-windows.html" class="nav-cta"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg> Download</a>
</div></div></nav>
<div class="page-hero"><div class="wrap">
<nav class="breadcrumb"><a href="/index.html">home</a> <span>/</span> <span>postgresql-16-vs-17</span></nav>
<span class="page-tag">Version guide</span>
<h1>PostgreSQL 16 vs 17 vs 18 on Windows — <span>version comparison</span></h1>
<p class="page-lead">Which PostgreSQL version should you install on Windows? Compare features, support timelines and end-of-life dates for PostgreSQL 16, 17 and 18.</p>
</div></div>
<div class="wrap"><div class="content-layout">
<main><div class="callout callout-info"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg><span>For new installations, always use the latest stable release. For existing deployments, stay on your current major version and apply minor updates promptly.</span></div>
<div class="section" aria-labelledby="rec-h2"><span class="section-label">Quick recommendation</span><h2 id="rec-h2">Which version should I install?</h2>
<p>If you are starting fresh on Windows today, install <strong>PostgreSQL 18</strong>. It is the latest stable release with the longest support horizon (until November 2029) and the newest features. PostgreSQL 16 and 17 are still fully supported but will reach end-of-life sooner.</p>
<div class="callout callout-ok"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg><span>New installation → PostgreSQL 18. Existing deployment on 16/17 → stay on your version, plan upgrade within the next 1-2 years.</span></div>
</div>
<div class="section" aria-labelledby="compare-h2"><span class="section-label">Version comparison</span><h2 id="compare-h2">PostgreSQL 16 vs 17 vs 18 on Windows</h2>
<div class="tbl-wrap"><table><thead><tr><th>Feature / aspect</th><th>PG 16</th><th>PG 17</th><th>PG 18</th></tr></thead><tbody>
<tr><td><strong>Release date</strong></td><td>Sept 2023</td><td>Oct 2024</td><td>May 2026</td></tr>
<tr><td><strong>End of life</strong></td><td>Nov 2028</td><td>Nov 2029</td><td>Nov 2030</td></tr>
<tr><td><strong>Status</strong></td><td>Supported</td><td>Supported</td><td><strong>Latest</strong></td></tr>
<tr><td><strong>Logical replication</strong></td><td>Improved</td><td>Enhanced</td><td>Full bidirectional</td></tr>
<tr><td><strong>JSON support</strong></td><td>Good</td><td>Better</td><td>Excellent</td></tr>
<tr><td><strong>Parallel query</strong></td><td>Good</td><td>Improved</td><td>Further improved</td></tr>
<tr><td><strong>Vacuum improvements</strong></td><td>Standard</td><td>Enhanced</td><td>Significant</td></tr>
<tr><td><strong>Windows installer</strong></td><td>EDB 16.x</td><td>EDB 17.x</td><td>EDB 18.x</td></tr>
<tr><td><strong>pgAdmin bundled</strong></td><td>4.x</td><td>4.x</td><td>4.x</td></tr>
</tbody></table></div>
</div>
<div class="section" aria-labelledby="pg18-h2"><span class="section-label">PostgreSQL 18 highlights</span><h2 id="pg18-h2">What is new in PostgreSQL 18?</h2>
<ul>
<li><strong>Asynchronous I/O</strong> — significantly improved I/O throughput, especially on Windows with its different I/O model</li>
<li><strong>Virtual generated columns</strong> — computed columns that do not require storage</li>
<li><strong>OAuth authentication</strong> — native OAuth 2.0 support for client authentication</li>
<li><strong>Improved JSON</strong> — more JSON functions and better performance</li>
<li><strong>pg_basebackup improvements</strong> — faster and more reliable physical backups</li>
<li><strong>Vacuum optimisations</strong> — reduced table bloat and faster autovacuum</li>
</ul>
</div>
<div class="section" aria-labelledby="pg17-h2"><span class="section-label">PostgreSQL 17 highlights</span><h2 id="pg17-h2">What is new in PostgreSQL 17?</h2>
<ul>
<li><strong>MERGE improvements</strong> — RETURNING clause support and WHEN NOT MATCHED BY SOURCE</li>
<li><strong>Incremental backup</strong> — pg_basebackup now supports incremental backups</li>
<li><strong>Faster vacuum</strong> — up to 20x faster on tables with many dead tuples</li>
<li><strong>JSON_TABLE</strong> — SQL/JSON table function for converting JSON to rows</li>
<li><strong>COPY improvements</strong> — COPY FROM now supports ON_ERROR IGNORE</li>
</ul>
</div>
<div class="section" aria-labelledby="eol-h2"><span class="section-label">End of life schedule</span><h2 id="eol-h2">Support timeline for Windows</h2>
<div class="tbl-wrap"><table><thead><tr><th>Version</th><th>Released</th><th>End of Life</th><th>Action needed</th></tr></thead><tbody>
<tr><td><strong>18</strong></td><td>May 2026</td><td class="td-ok">Nov 2030</td><td>Recommended for new installs</td></tr>
<tr><td>17</td><td>Oct 2024</td><td class="td-ok">Nov 2029</td><td>Continue using, plan upgrade to 18 by 2029</td></tr>
<tr><td>16</td><td>Sept 2023</td><td>Nov 2028</td><td>Continue using, plan upgrade</td></tr>
<tr><td>15</td><td>Oct 2022</td><td>Nov 2027</td><td>Plan upgrade soon</td></tr>
<tr><td>14</td><td>Sept 2021</td><td class="td-warn">Nov 2026</td><td>Upgrade urgently — EOL this year</td></tr>
<tr><td>13 and older</td><td>—</td><td class="td-warn">Already EOL</td><td>Upgrade immediately</td></tr>
</tbody></table></div>
</div>
<div class="section" aria-labelledby="faq-h2"><span class="section-label">FAQ</span><h2 id="faq-h2">Version questions</h2><div class="faq">
<div class="faq-item"><details><summary>Can I run PostgreSQL 16 and 18 on the same Windows machine?</summary><div class="faq-ans">Yes. Each major version installs to its own directory and uses a different port by default (the installer assigns 5432 to the first install, then 5433 for the second, etc.). Both services can run simultaneously.</div></details></div>
<div class="faq-item"><details><summary>Is upgrading from 16 to 18 safe?</summary><div class="faq-ans">Yes, with preparation. Back up all databases first with pg_dumpall. Then either use the dump/restore method or pg_upgrade. Never skip the backup step. See <a href="/migrate-from-older-versions.html">Upgrade guide</a>.</div></details></div>
<div class="faq-item"><details><summary>Do minor versions (16.1, 16.2, etc.) require data migration?</summary><div class="faq-ans">No. Minor version upgrades (e.g. 17.3 to 17.4) are safe to apply by simply running the new installer over the existing one. The data directory and format do not change between minor versions.</div></details></div>
</div></div>
<div class="cta-banner"><div><h2>Ready to upgrade?</h2><p>Safe step-by-step upgrade guide for PostgreSQL on Windows.</p></div><a href="/migrate-from-older-versions.html" class="btn-white"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>Upgrade guide</a></div>
<div style="margin-bottom:32px"><span class="section-label">Related guides</span><div class="rel-grid"><a href="/migrate-from-older-versions.html" class="rel-card"><div class="rel-title">Upgrade guide →</div><div class="rel-sub">safe migration steps</div></a><a href="/download-windows.html" class="rel-card"><div class="rel-title">Download →</div><div class="rel-sub">get latest version</div></a><a href="/pg-dump-restore-windows.html" class="rel-card"><div class="rel-title">Backup first →</div><div class="rel-sub">pg_dump guide</div></a></div></div></main>
<aside class="content-sidebar"><div class="sb-card"><div class="version-badge-label">Latest stable</div><div class="version-badge-val">18.3</div><div class="version-badge-sub">Released May 2026</div></div><div class="sb-card"><div class="sb-card-title">Install & setup</div><ul class="sb-links"><li><a href="/download-windows.html">Download PostgreSQL</a></li><li><a href="/offline-installer.html">Offline installer</a></li><li><a href="/configure-windows-service.html">Windows service</a></li><li><a href="/fix-path-issues.html">Fix PATH / psql</a></li><li><a href="/pgadmin-windows.html">pgAdmin 4</a></li><li><a href="/install-postgresql-windows-server.html">Windows Server</a></li></ul></div><div class="sb-card"><div class="sb-card-title">Configuration</div><ul class="sb-links"><li><a href="/postgresql-config-windows.html">postgresql.conf</a></li><li><a href="/postgresql-port-5432.html">Port 5432</a></li><li><a href="/postgresql-allow-remote-connections.html">Remote connections</a></li><li><a href="/postgresql-password-windows.html">Reset password</a></li></ul></div><div class="sb-card"><div class="sb-card-title">Tools & help</div><ul class="sb-links"><li><a href="/psql-commands-windows.html">psql commands</a></li><li><a href="/pg-dump-restore-windows.html">Backup & restore</a></li><li><a href="/postgresql-python-windows.html">Python / psycopg2</a></li><li><a href="/odbc-driver-x64-x86.html">ODBC driver</a></li><li><a href="/postgresql-not-starting-windows.html">Service not starting</a></li><li><a href="/postgresql-uninstall-windows.html">Uninstall</a></li><li><a href="/postgresql-windows-faq.html">FAQ</a></li></ul></div></aside>
</div></div>
<footer class="site-footer"><div class="wrap">
<div class="footer-inner">
<div>
<div class="footer-logo"><div class="footer-logo-mark">Pg</div><span class="footer-logo-name">PostgreSQL for Windows</span></div>
<p class="footer-tagline">Unofficial Windows guide for PostgreSQL — download, install, configure, troubleshoot.</p>
</div>
<div>
<div class="footer-col-title">Install & setup</div>
<ul class="footer-links">
<li><a href="/download-windows.html">Download PostgreSQL</a></li>
<li><a href="/offline-installer.html">Offline installer</a></li>
<li><a href="/configure-windows-service.html">Windows service</a></li>
<li><a href="/fix-path-issues.html">Fix PATH / psql</a></li>
<li><a href="/pgadmin-windows.html">pgAdmin 4</a></li>
</ul>
</div>
<div>
<div class="footer-col-title">Configuration</div>
<ul class="footer-links">
<li><a href="/postgresql-config-windows.html">postgresql.conf</a></li>
<li><a href="/postgresql-port-5432.html">Port 5432</a></li>
<li><a href="/postgresql-allow-remote-connections.html">Remote connections</a></li>
<li><a href="/postgresql-password-windows.html">Reset password</a></li>
<li><a href="/install-postgresql-windows-server.html">Windows Server</a></li>
</ul>
</div>
<div>
<div class="footer-col-title">Tools & help</div>
<ul class="footer-links">
<li><a href="/psql-commands-windows.html">psql commands</a></li>
<li><a href="/pg-dump-restore-windows.html">Backup & restore</a></li>
<li><a href="/postgresql-not-starting-windows.html">Service not starting</a></li>
<li><a href="/postgresql-uninstall-windows.html">Uninstall</a></li>
<li><a href="/postgresql-windows-faq.html">FAQ</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>Not affiliated with the PostgreSQL Global Development Group. Unofficial community guide.</p>
<p><strong>Affiliate disclosure:</strong> Download links may be partner links.</p>
</div>
</div></footer>
<div class="cookie-bar" id="cookieBar" style="display:none">
<p>We use Google Analytics for anonymous traffic data. <a href="/privacy.html">Privacy policy</a></p>
<div class="cookie-btns"><button class="cookie-accept" id="cookieAccept">Accept</button><button class="cookie-decline" id="cookieDecline">Decline</button></div>
</div>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-MHLW57MR8Q"></script>
<script>
window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}
gtag('consent','default',{analytics_storage:'denied',ad_storage:'denied'});
gtag('js',new Date());gtag('config','G-MHLW57MR8Q',{anonymize_ip:true,send_page_view:false});
function grantGA(){gtag('consent','update',{analytics_storage:'granted'});gtag('event','page_view',{page_location:location.href,page_title:document.title})}
document.addEventListener('DOMContentLoaded',function(){
var bar=document.getElementById('cookieBar');
var c=localStorage.getItem('pg_consent');
if(!c){bar.style.display='flex'}else if(c==='1'){grantGA()}
document.getElementById('cookieAccept').addEventListener('click',function(){localStorage.setItem('pg_consent','1');grantGA();bar.style.display='none'});
document.getElementById('cookieDecline').addEventListener('click',function(){localStorage.setItem('pg_consent','0');bar.style.display='none'});
});
</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","headline":"PostgreSQL 16 vs 17 vs 18 on Windows","description":"Compare PostgreSQL versions for Windows installation: features, support timeline and upgrade recommendations.","url":"https://postgre-sql.github.io/postgresql-16-vs-17.html"}</script>
<script>var el=document.getElementById("nl-home");if(el)el.classList.add("active");</script>
</body></html>