Bản phát hành DBMS PostgreSQL 15

Sau một năm phát triển, một nhánh ổn định mới của PostgreSQL 15 DBMS đã được xuất bản. Các bản cập nhật cho nhánh mới sẽ được phát hành trong vòng 2027 năm cho đến tháng XNUMX năm XNUMX.

Những đổi mới chính:

  • Đã thêm hỗ trợ cho lệnh SQL "MERGE", giống với biểu thức "INSERT ... ON CONFLICT". MERGE cho phép bạn tạo các câu lệnh SQL có điều kiện kết hợp các thao tác INSERT, UPDATE và DELETE thành một biểu thức duy nhất. Ví dụ: sử dụng MERGE, bạn có thể hợp nhất hai bảng bằng cách chèn các bản ghi bị thiếu và cập nhật các bảng hiện có. HỢP NHẤT VÀO customer_account ca SỬ DỤNG các giao dịch gần đây t TRÊN t.customer_id = ca.customer_id KHI ĐƯỢC KHUYẾN MÃI SAU ĐÓ CẬP NHẬT THIẾT LẬP số dư = số dư + giá trị giao dịch KHI KHÔNG KHUYẾN MÃI SAU ĐÓ CHÈN (id_khách hàng, số dư) GIÁ TRỊ (t.customer_id, t.transaction_value);
  • Các thuật toán sắp xếp dữ liệu trong bộ nhớ và trên đĩa đã được cải thiện đáng kể. Tùy thuộc vào loại dữ liệu, các thử nghiệm cho thấy tốc độ sắp xếp tăng từ 25% lên 400%.
  • Các hàm cửa sổ sử dụng row_number(), Rank(),dense_rank() và count() đã được tăng tốc.
  • Khả năng thực hiện song song các truy vấn với biểu thức “CHỌN DISTINCT” đã được triển khai.
  • Cơ chế kết nối các bảng bên ngoài Trình bao bọc dữ liệu nước ngoài (postgres_fdw) triển khai hỗ trợ cho các cam kết không đồng bộ bên cạnh khả năng được bổ sung trước đó để xử lý các yêu cầu không đồng bộ đến các máy chủ bên ngoài.
  • Đã thêm khả năng sử dụng thuật toán LZ4 và Zstandard (zstd) để nén nhật ký giao dịch WAL, trong một số khối lượng công việc, thuật toán này có thể đồng thời cải thiện hiệu suất và tiết kiệm dung lượng ổ đĩa. Để giảm thời gian khôi phục sau khi xảy ra lỗi, tính năng hỗ trợ chủ động truy xuất các trang xuất hiện trong nhật ký WAL đã được thêm vào.
  • Tiện ích pg_basebackup đã thêm hỗ trợ cho việc nén các tệp sao lưu phía máy chủ bằng các phương pháp gzip, LZ4 hoặc zstd. Có thể sử dụng các mô-đun của riêng bạn để lưu trữ, cho phép bạn thực hiện mà không cần chạy lệnh shell.
  • Một loạt hàm mới đã được thêm vào để xử lý chuỗi bằng biểu thức thông thường: regrec_count(), regrec_instr(), regrec_like() và regrec_substr().
  • Khả năng tổng hợp các loại nhiều phạm vi (“đa phạm vi”) đã được thêm vào hàm range_agg().
  • Đã thêm chế độ security_invoker, cho phép bạn tạo các chế độ xem chạy với tư cách là người dùng gọi điện thay vì người tạo chế độ xem.
  • Để sao chép logic, hỗ trợ lọc hàng và chỉ định danh sách cột đã được triển khai, cho phép phía người gửi chọn một tập hợp con dữ liệu từ bảng để sao chép. Ngoài ra, phiên bản mới đơn giản hóa việc quản lý xung đột, ví dụ: giờ đây có thể bỏ qua các giao dịch xung đột và tự động vô hiệu hóa đăng ký khi phát hiện thấy lỗi. Sao chép logic cho phép sử dụng các cam kết hai pha (2PC).
  • Một định dạng nhật ký mới đã được thêm vào - jsonlog, lưu thông tin ở dạng có cấu trúc bằng định dạng JSON.
  • Quản trị viên có khả năng ủy quyền cá nhân cho người dùng để thay đổi một số tham số cấu hình máy chủ PostgreSQL nhất định.
  • Tiện ích psql đã thêm hỗ trợ tìm kiếm thông tin về cài đặt (pg_settings) bằng lệnh “\dconfig”.
  • Việc sử dụng bộ nhớ dùng chung được đảm bảo để tích lũy số liệu thống kê về hoạt động của máy chủ, giúp loại bỏ quy trình thu thập số liệu thống kê riêng biệt và đặt lại trạng thái định kỳ vào đĩa.
  • Khả năng sử dụng các ngôn ngữ ICU mặc định “ICU Collation” đã được cung cấp; trước đây, chỉ các ngôn ngữ libc mới có thể được sử dụng làm ngôn ngữ mặc định.
  • Tiện ích mở rộng pg_walinspect tích hợp đã được đề xuất, cho phép bạn kiểm tra nội dung của tệp bằng nhật ký WAL bằng truy vấn SQL.
  • Đối với lược đồ công khai, tất cả người dùng, ngoại trừ chủ sở hữu cơ sở dữ liệu, đều có quyền thực thi lệnh CREATE bị thu hồi.
  • Hỗ trợ cho Python 2 đã bị xóa trong PL/Python. Chế độ sao lưu độc quyền lỗi thời đã bị xóa.

Ngoài ra: Từ 19:00 đến 20:00 (MSK) sẽ có hội thảo trực tuyến thảo luận về những thay đổi trong phiên bản mới với Pavel Luzanov (Postgres Professional). Đối với những người không thể tham gia chương trình phát sóng, bản ghi báo cáo tháng 15 của Pavel “PostgreSQL XNUMX: MERGE và hơn thế nữa” tại PGConf.Nga đã được mở.

Nguồn: opennet.ru

Thêm một lời nhận xét