- 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
vacuum trong 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
vacuum và 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
- 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 đề
IN sử 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
- 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)
- 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
jsonpath tậ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ờ)
- Bổ sung mệnh đề
RETURNING và khả năng cập nhật view cho lệnh MERGE
- 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
COPY khi mã hóa nguồn và đích trùng khớp
- Bổ sung tùy chọn
ON_ERROR cho phép tiếp tục nhập ngay cả khi xảy ra lỗi chèn
- 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
EXISTS và IN sang máy chủ từ xa bằng postgres_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 ích pg_combinebackup để tái cấu trúc bản sao lưu đầy đủ
pg_dump có 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
EXPLAIN hiể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à
SERIALIZE và 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ới pg_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