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

Sau một năm phát triển, một nhánh ổn định mới của PostgreSQL 14 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 2026 năm cho đến tháng XNUMX năm XNUMX.

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

  • Đã thêm hỗ trợ để truy cập dữ liệu JSON bằng cách sử dụng các biểu thức giống mảng: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; CHỌN * TỪ kiểm tra chi tiết WHERE['attributes']['size'] = '"medium"';

    Cú pháp tương tự được triển khai cho dữ liệu khóa/giá trị do loại hstore cung cấp. Cú pháp này ban đầu được triển khai bằng cách sử dụng một khung phổ quát, trong tương lai có thể được sử dụng cho các loại khác. Ví dụ về loại hstore: INSERT INTO mytable VALUES ('a=>b, c=>d'); CHỌN h['a'] TỪ bảng của tôi; CẬP NHẬT mytable SET h['c'] = 'new';

  • Nhóm các loại để xác định phạm vi đã được mở rộng với các loại “đa phạm vi” mới, cho phép bạn chỉ định danh sách có thứ tự các phạm vi giá trị không chồng chéo. Ngoài mỗi loại phạm vi hiện có, loại đa phạm vi riêng của nó cũng được đề xuất, ví dụ: loại “int4range” tương ứng với “int4multirange” và loại “daterange” tương ứng với “datemultirange”. Việc sử dụng các loại mới giúp đơn giản hóa việc thiết kế các truy vấn thao tác các chuỗi phạm vi phức tạp. CHỌN '{[3,7), [8,9)}'::int4multirange; CHỌN nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Các tối ưu hóa đã được thực hiện để cải thiện hiệu suất của các hệ thống tải cao xử lý một số lượng lớn kết nối. Trong một số thử nghiệm, người ta thấy hiệu suất tăng gấp đôi.
  • Hiệu quả của các chỉ mục cây B đã được cải thiện và vấn đề tăng trưởng chỉ mục khi các bảng được cập nhật thường xuyên đã được giải quyết.
  • Đã thêm hỗ trợ cho chế độ truyền yêu cầu theo đường dẫn phía máy khách (được triển khai ở cấp libpq), cho phép bạn tăng tốc đáng kể các kịch bản cơ sở dữ liệu liên quan đến việc thực hiện một số lượng lớn các thao tác ghi nhỏ (CHÈN/CẬP NHẬT/XÓA) bằng cách gửi yêu cầu tiếp theo mà không cần đợi kết quả của yêu cầu trước đó. Chế độ này cũng giúp tăng tốc độ làm việc trên các kết nối có độ trễ phân phối gói dài.
  • Khả năng nâng cao cho các cấu hình phân tán liên quan đến nhiều máy chủ PostgreSQL. Việc triển khai sao chép logic hiện có khả năng gửi các giao dịch đang diễn ra ở chế độ phát trực tuyến, điều này có thể cải thiện đáng kể hiệu suất sao chép các giao dịch lớn. Ngoài ra, việc giải mã logic dữ liệu nhận được trong quá trình sao chép logic đã được tối ưu hóa.
  • Cơ chế kết nối các bảng bên ngoài Bộ gói dữ liệu nước ngoài (postgres_fdw) đã bổ sung hỗ trợ xử lý truy vấn song song, hiện chỉ áp dụng được khi kết nối với các máy chủ PostgreSQL khác. postgres_fdw cũng bổ sung hỗ trợ thêm dữ liệu vào các bảng bên ngoài ở chế độ hàng loạt và khả năng nhập các bảng được phân vùng bằng cách chỉ định lệnh “NHẬP KHẨU TRANG NƯỚC NGOÀI”.
  • Các tối ưu hóa đã được thực hiện để triển khai hoạt động VACUUM (thu gom rác và đóng gói bộ lưu trữ đĩa). Chế độ dọn dẹp khẩn cấp đã được thêm vào để bỏ qua các hoạt động dọn dẹp không cần thiết nếu các điều kiện bao quanh ID giao dịch được tạo. Giảm chi phí khi xử lý chỉ mục ở định dạng B-Tree. Việc thực thi thao tác “PHÂN TÍCH”, thu thập số liệu thống kê về hoạt động của cơ sở dữ liệu, đã được tăng tốc đáng kể.
  • Đã thêm khả năng định cấu hình phương thức nén được sử dụng trong hệ thống TOAST, hệ thống này chịu trách nhiệm lưu trữ dữ liệu lớn, chẳng hạn như khối văn bản hoặc thông tin hình học. Ngoài phương pháp nén pglz, TOAST hiện có thể sử dụng thuật toán LZ4.
  • Các công cụ giám sát hoạt động của DBMS đã được mở rộng. Đã thêm chế độ xem để theo dõi tiến trình của lệnh COPY (pg_stat_progress_copy), thống kê về các vị trí sao chép (pg_stat_replication_slots) và hoạt động liên quan đến nhật ký giao dịch WAL (pg_stat_wal). Chức năng điện toán_query_id đã được thêm vào, cho phép nhiều hệ thống con khác nhau, chẳng hạn như pg_stat_activity và GIẢI THÍCH ĐỘNG TỪ, theo dõi các yêu cầu bằng cách chỉ định một mã định danh duy nhất cho mỗi yêu cầu.
  • Các tính năng tối ưu hóa đã được thêm vào trình lập kế hoạch truy vấn để cải thiện việc xử lý song song các truy vấn và cải thiện hiệu suất thực hiện đồng thời các hoạt động quét bản ghi tuần tự, thực hiện song song các truy vấn trong PL/pgSQL bằng cách sử dụng lệnh “RETURN QUERY” và thực thi song song các truy vấn trong “ LÀM MỚI TẦM NHÌN VẬT LIỆU”. Để cải thiện hiệu suất của việc hợp nhất lồng nhau theo chu kỳ (tham gia), hỗ trợ cho bộ nhớ đệm bổ sung đã được triển khai.
  • Hiện tại, số liệu thống kê nâng cao có thể được sử dụng để tối ưu hóa biểu thức và sắp xếp tăng dần hiện có thể được sử dụng để tối ưu hóa các chức năng của cửa sổ.
  • Các quy trình được lưu trữ cho phép bạn quản lý các giao dịch theo khối mã hiện hỗ trợ xác định dữ liệu trả về bằng tham số "OUT".
  • Đã thêm hàm date_bin để làm tròn các giá trị dấu thời gian theo một khoảng thời gian đã chỉ định. CHỌN date_bin('15 phút', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Đã thêm các biểu thức TÌM KIẾM và CHU KỲ được xác định trong tiêu chuẩn SQL để giúp sắp xếp và xác định các chu trình dễ dàng hơn trong Biểu thức bảng chung đệ quy (CTE). VỚI search_tree ĐẶC BIỆT(id, link, data) AS ( SELECT t.id, t.link, t.data FROM tree t UNION ALL SELECT t.id, t.link, t.data FROM tree t, search_tree st WHERE t. id = st.link ) ĐỘ SÂU TÌM KIẾM ĐẦU TIÊN THEO id SET ordercol CHỌN * TỪ search_tree ĐẶT HÀNG THEO ordercol;
  • Trong tiện ích psql, tính năng tự động hoàn thành các lệnh bằng tab đã được cải thiện, khả năng hiển thị các đối số chức năng đã được thêm vào lệnh “\df” và số liệu thống kê được hiển thị đã được mở rộng sang lệnh “\dX”.
  • Có thể gán đặc quyền chỉ đọc hoặc chỉ ghi cho người dùng. Các đặc quyền có thể được đặt trên các bảng, dạng xem và lược đồ riêng lẻ bằng cách sử dụng các vai trò được xác định trước pg_read_all_data và pg_write_all_data. CẤP pg_read_all_data CHO user1;
  • Các cài đặt mới mặc định xác thực mật khẩu bằng SCRAM-SHA-256 thay vì md5 (tham số "password_encryption" khi tạo postgresql.conf hiện được đặt thành 'scram-sha-256').

Nguồn: opennet.ru

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