- PostgreSQL 16 में query parallelism, bulk data loading और logical replication में उल्लेखनीय सुधार किए गए हैं, जिससे performance बेहतर हुई है
- अधिक SQL/JSON syntax, workloads के लिए नए monitoring statistics, और access control rules को परिभाषित करने में अधिक flexibility जोड़ी गई है
प्रदर्शन सुधार
- query planner अब FULL और RIGHT join को parallelize करता है, DISTINCT या ORDER BY clause का उपयोग करने वाली queries के लिए अधिक optimized plans बनाता है, SELECT DISTINCT queries में incremental sort का उपयोग करता है, और window functions को optimize करता है
- single और concurrent operations में COPY का उपयोग करके bulk loading में सुधार किया गया है, और कुछ मामलों में performance 300% तक बेहतर हुई है
- x86 और ARM architectures पर SIMD का उपयोग करते हुए CPU acceleration जोड़ा गया है, जिससे ASCII और JSON string processing, arrays और subtransaction lookup के दौरान performance बेहतर होती है
लॉजिकल रेप्लिकेशन
- अब standby instances पर logical replication की जा सकती है, जिससे workload distribution के नए विकल्प संभव हुए हैं
- व्यस्त primary की जगह standby का उपयोग करके changes को downstream में replicate किया जा सकता है
- logical replication performance में भी सुधार हुआ है
- subscriber parallel workers का उपयोग करके बड़े transactions apply कर सकता है
- जिन tables में primary key नहीं है, उनमें sequential scan की जगह B-tree index का उपयोग करके rows को ढूंढा जा सकता है
- कुछ परिस्थितियों में binary format का उपयोग करके initial table synchronization को तेज किया जा सकता है
डेवलपर अनुभव
- SQL/JSON standard से और अधिक syntax जोड़ी गई है, जिसमें JSON_ARRAY(), JSON_ARRAYAGG(), IS JSON जैसे constructors और predicates शामिल हैं
- thousand separators के लिए numbers में underscore का उपयोग किया जा सकता है (5_432_000)
psql में \bind जोड़ा गया है, जिससे parameters वाली queries लिखकर उन्हें variables से substitute किया जा सकता है
- text collation के लिए support में सुधार किया गया है
मॉनिटरिंग
- I/O access patterns का बारीकी से विश्लेषण करने वाले metrics देने के लिए
pg_stat_io जोड़ा गया है
pg_stat_all_tables view में timestamp fields जोड़े गए हैं, जो बताते हैं कि table या index को आखिरी बार कब scan किया गया था
- parameterized statements को दिए गए values को log करके
auto_explain को अधिक readable बनाया गया है
एक्सेस कंट्रोल और सुरक्षा
- access control के लिए और अधिक fine-grained options दिए गए हैं
pg_hba.conf और pg_ident.conf files के management, तथा कई security-oriented client connection parameters के अतिरिक्त सहित अन्य security features को बेहतर बनाया गया है
1 टिप्पणियां
Hacker News राय
\bindपेश की है, जो applications को वैसे ही parameterized queries चलाने देती है जैसे वे स्वयं करती हैं, और इसी वजह से यह लोकप्रिय हो रही है.debug_io_directsetting के पीछे है.