PostgreSQL 17 ra mắt
(postgresql.org)- PostgreSQL 17 bao gồm các cải tiến hiệu năng quan trọng, cải thiện quản lý bộ nhớ, tối ưu truy cập lưu trữ, nâng cao khả năng xử lý tải công việc đồng thời cao, tăng tốc độ nạp dữ liệu hàng loạt và xuất dữ liệu, cũng như cải thiện việc thực thi truy vấn chỉ mục
Cải thiện hiệu năng trên toàn hệ thống
- Cải thiện cấu trúc bộ nhớ nội bộ của quy trình
vacuumtrong PostgreSQL, vốn rất cần thiết cho hoạt động bình thường, giúp giảm mức sử dụng bộ nhớ tới 20 lần- Tăng tốc
vacuumvà giảm sử dụng tài nguyên dùng chung, nhờ đó có thể dành nhiều tài nguyên hơn cho workload
- Tăng tốc
- Tiếp tục cải thiện hiệu năng của tầng I/O
- Cải thiện xử lý Write-Ahead Log(WAL), cho thấy thông lượng ghi tốt hơn tới 2 lần trong các workload đồng thời cao
- Giao diện streaming I/O mới giúp tăng tốc quét tuần tự (đọc toàn bộ dữ liệu trong bảng) và tăng tốc cập nhật thống kê kế hoạch thực thi của lệnh
ANALYZE
- Mở rộng lợi ích cải thiện hiệu năng sang cả việc thực thi truy vấn
- Cải thiện hiệu năng của các truy vấn có mệnh đề
INsử dụng chỉ mục B-tree (phương pháp chỉ mục mặc định của PostgreSQL) - Hỗ trợ xây dựng song song cho chỉ mục BRIN
- Cải thiện hiệu năng của các truy vấn có mệnh đề
- Bao gồm nhiều cải tiến cho việc lập kế hoạch truy vấn
- Tối ưu hóa cho ràng buộc
NOT NULL - Cải thiện xử lý biểu thức bảng chung (truy vấn
WITH)
- Tối ưu hóa cho ràng buộc
- Mở rộng hỗ trợ SIMD(Single Instruction/Multiple Data) để tăng tốc tính toán, chẳng hạn như sử dụng AVX-512 cho hàm
bit_count
Tiếp tục mở rộng mạnh mẽ trải nghiệm nhà phát triển
- PostgreSQL là cơ sở dữ liệu quan hệ đầu tiên bổ sung hỗ trợ JSON (2012)
- Trong PostgreSQL 17, việc triển khai tiêu chuẩn SQL/JSON được mở rộng thêm
- Có thể chuyển đổi dữ liệu JSON thành bảng PostgreSQL tiêu chuẩn thông qua
JSON_TABLE - Hỗ trợ các constructor SQL/JSON (
JSON,JSON_SCALAR,JSON_SERIALIZE) và các hàm truy vấn (JSON_EXISTS,JSON_QUERY,JSON_VALUE) - Bổ sung biểu thức
jsonpathtập trung vào việc chuyển đổi dữ liệu JSON sang các kiểu dữ liệu cơ bản của PostgreSQL (số, boolean, chuỗi, ngày/giờ)
- Có thể chuyển đổi dữ liệu JSON thành bảng PostgreSQL tiêu chuẩn thông qua
- Bổ sung mệnh đề
RETURNINGvà khả năng cập nhật view cho lệnhMERGE - Cải thiện chức năng nạp dữ liệu hàng loạt và xuất dữ liệu
- Cải thiện hiệu năng tới 2 lần khi xuất các hàng lớn bằng lệnh
COPY - Cải thiện hiệu năng
COPYkhi mã hóa nguồn và đích trùng khớp - Bổ sung tùy chọn
ON_ERRORcho phép tiếp tục nhập ngay cả khi xảy ra lỗi chèn
- Cải thiện hiệu năng tới 2 lần khi xuất các hàng lớn bằng lệnh
- Mở rộng khả năng quản lý dữ liệu phân tán trên các partition và các instance PostgreSQL từ xa
- Hỗ trợ sử dụng cột ID và ràng buộc loại trừ trên bảng partition
- Có thể đẩy các truy vấn con
EXISTSvàINsang máy chủ từ xa bằngpostgres_fdw
- Bao gồm nhà cung cấp đối chiếu dữ liệu tích hợp, độc lập nền tảng và bất biến
- Cung cấp ngữ nghĩa sắp xếp tương tự đối chiếu C, nhưng dùng mã hóa UTF-8 thay vì SQL_ASCII
- Khi dùng nhà cung cấp đối chiếu mới này, các truy vấn dựa trên văn bản sẽ trả về cùng một kết quả sắp xếp bất kể PostgreSQL chạy ở đâu
Cải thiện sao chép logic cho tính sẵn sàng cao và nâng cấp phiên bản chính
- Sao chép logic được dùng để truyền phát dữ liệu theo thời gian thực
- Ở các phiên bản trước, khi nâng cấp phiên bản chính phải xóa các slot sao chép logic, khiến phải đồng bộ lại dữ liệu cho subscriber sau khi nâng cấp
- Từ PostgreSQL 17, không còn cần xóa các slot sao chép logic, giúp đơn giản hóa quy trình nâng cấp
- Bao gồm chức năng kiểm soát chuyển đổi dự phòng cho sao chép logic, cho phép triển khai linh hoạt hơn trong môi trường tính sẵn sàng cao
- Giới thiệu công cụ dòng lệnh
pg_createsubscriber, có thể chuyển một bản sao vật lý thành một bản sao logic mới
Thêm nhiều lựa chọn hơn cho bảo mật và quản trị vận hành
- PostgreSQL 17 tiếp tục mở rộng cách người dùng quản lý toàn bộ vòng đời của hệ quản trị cơ sở dữ liệu
- Bổ sung tùy chọn TLS mới là
sslnegotiation, cho phép thực hiện trực tiếp bắt tay TLS khi dùng ALPN - Bổ sung vai trò định sẵn
pg_maintain, cấp quyền thực hiện các tác vụ bảo trì pg_basebackup, tiện ích sao lưu đi kèm PostgreSQL, nay hỗ trợ sao lưu gia tăng và bổ sung tiện íchpg_combinebackupđể tái cấu trúc bản sao lưu đầy đủpg_dumpcó thêm tùy chọn mới--filter, cho phép chọn các đối tượng sẽ được đưa vào khi tạo tệp dump- Cải thiện khả năng giám sát và phân tích
EXPLAINhiển thị thời gian dùng để đọc và ghi các khối I/O cục bộ- Bao gồm hai tùy chọn mới là
SERIALIZEvàMEMORY: hữu ích để kiểm tra thời gian dùng cho việc chuyển đổi dữ liệu phục vụ truyền qua mạng và lượng bộ nhớ đã sử dụng
- Báo cáo tiến trình dọn dẹp chỉ mục
- Bổ sung system view
pg_wait_events; khi kết hợp vớipg_stat_activity, nó cung cấp insight về lý do các session đang hoạt động phải chờ
1 bình luận
Ý kiến trên Hacker News
Chúc mừng bản phát hành mới của PostgreSQL 17 và nhắc đến nhiều cải tiến
pg_basebackuphỗ trợ sao lưu gia tăng và bổ sung tiện íchpg_combinebackupÝ kiến về tính hữu dụng của các tính năng JSON
Chia sẻ trải nghiệm sử dụng tính năng JSON_TABLE
Nhắc đến các cải thiện hiệu năng và nâng cấp tính năng UX của PostgreSQL 17
Ấn tượng về changelog
Chia sẻ trải nghiệm chuyển từ Oracle sang MSSQL do vấn đề niềm tin với phần mềm mã nguồn mở
Cảm ơn những cải tiến liên tục của Postgres và hy vọng tiện ích mở rộng Incremental View Maintenance (IVM) sẽ được hỗ trợ chính thức
Kỳ vọng về hỗ trợ nâng cấp phiên bản chính của PostgreSQL
Mong muốn Postgres đưa vào bảng phiên bản hệ thống
Kỳ vọng việc cải thiện tích hợp JSON của Postgres sẽ mở ra một mô hình framework web mới