PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Các tính năng mới tốt nhất trong PostgreSQL 14

Theo StackOverflow, PostgreSQL là cơ sở dữ liệu mã nguồn mở phổ biến nhất, với ngày càng nhiều nhà phát triển và quản trị viên muốn làm việc với nó. PostgreSQL 14, phiên bản mới nhất được phát hành vào tháng 9 năm 2021, có hơn 200 cải tiến và các tính năng mới, bao gồm cả ba lĩnh vực:Bảo mật, Hiệu suất và Giám sát.

Bắt đầu từ phiên bản 1.9.2, được phát hành vào đầu năm nay, ClusterControl hiện hỗ trợ phiên bản mới nhất của PostgreSQL 14.

Trong bài đăng này, chúng ta sẽ xem xét các tính năng, bản cập nhật chính và cải tiến đáng chú ý nhất có sẵn trong PostgreSQL 14.

Bảo mật

Thay đổi bảo mật quan trọng nhất của PostgreSQL 14 là chuyển sang SCRAM làm xác thực mặc định sau khi xác thực SCRAM-SHA-256 lần đầu tiên được giới thiệu trong PostgreSQL 10. SCRAM cung cấp một giải pháp đơn giản và mạnh mẽ hơn nhiều để điều chỉnh sự tuân thủ đối với dữ liệu Bảo vệ. Xác thực MD5 mặc định trước đây đã có một số điểm yếu bị khai thác trong quá khứ.

Cùng với xác thực được cải thiện, PostgreSQL 14 đơn giản hóa quá trình chỉ định khả năng chỉ ghi và chỉ đọc cho người dùng trên bảng, dạng xem và lược đồ bằng cách giới thiệu hai vai trò được xác định trước, pg_write_all_data và pg_read_all_data. Vai trò trước đây giúp tạo các đặc quyền theo kiểu người dùng siêu thuận tiện. Mặc dù thuận tiện cho các hoạt động và truy cập, loại tài khoản này phải được sử dụng một cách tiết kiệm. Vai trò thứ hai giúp thuận tiện trong việc cấp quyền truy cập chỉ đọc cho người dùng vào tất cả các bảng, lược đồ và dạng xem trong cơ sở dữ liệu. Vai trò này sẽ có quyền đọc theo mặc định đối với bất kỳ bảng nào mới được tạo.

Hiệu suất

Các tập đoàn đang xử lý ngày càng nhiều dữ liệu và tốc độ, khối lượng &sự đa dạng (ba chữ V của Dữ liệu lớn) không có dấu hiệu chậm lại. PostgreSQL 14 đã thực hiện một số thay đổi rất quan trọng để có thể mở rộng quy mô và hỗ trợ các khối lượng công việc này và cải thiện hiệu suất. Điều này có thể được nhóm tốt nhất thành năm lĩnh vực sau:

Khả năng mở rộng và Hiệu suất

PostgreSQL 14 mang lại những thành tựu to lớn về hiệu suất xóa và cập nhật trên các bảng có số lượng phân vùng cao. Điều này cho phép xóa và cập nhật trên các bảng được phân vùng để sử dụng tính năng cắt tỉa phân vùng theo thời gian thực thi. Quan trọng nhất, phiên bản này có thể mở rộng thành nhiều phân vùng hơn trước, cho phép PostgreSQL đối phó với cơ sở dữ liệu lớn hơn nhiều so với trước đây.

Trong PostgreSQL phiên bản 14, giờ đây các phân vùng cũng có thể được tách rời đồng thời, giúp quản lý các bảng dữ liệu chuỗi thời gian lớn dễ dàng hơn. Điều này có thể thực hiện được do hàm date_bin () mới, cho phép người dùng tóm tắt dữ liệu chuỗi thời gian thành các phạm vi ngày tốt hơn và dễ dàng hơn.

PostgreSQL 14 đã thêm hỗ trợ nén LZ4 cho TOAST. LZ4 sử dụng công nghệ nén mới nhất và tập trung vào việc cải thiện tốc độ giải nén và nén dữ liệu tài liệu. LZ4 sẽ nâng cao các ứng dụng với các tài liệu XML và JSON lớn hơn, và thuật toán nén này có thể được định cấu hình ở cả cấp độ hệ thống và cột.

Khối lượng công việc và cơ sở dữ liệu được phân phối

PostgreSQL 14 cũng cung cấp các cải tiến trong việc mở rộng cơ sở dữ liệu theo chiều ngang bằng cách giới thiệu hai cải tiến chính trong postgres_fdw (trình bao bọc dữ liệu nước ngoài), là công cụ để cải thiện hiệu suất cho cơ sở dữ liệu phân tán. Những thay đổi này hỗ trợ việc chèn hàng loạt dữ liệu và quét bảng song song trên các bảng ngoại (khi async_capable được đặt).

Bộ nhớ đệm kết nối cũng cải thiện hiệu suất bằng cách cho phép mở các kết nối qua các giao dịch. Chúng ta cũng có thể đề cập đến chế độ đường ống Libpd, giúp tăng hiệu suất của cơ sở dữ liệu phân tán bằng cách cho phép truyền các luồng thay đổi mà không cần đợi xác nhận của mạng trên mỗi lệnh.

Khả năng quản lý

PostgreSQL 14 cũng giải quyết vấn đề nở ra chỉ mục B-tree; các chỉ mục thường xuyên được cập nhật sẽ phình ra theo thời gian do các bộ giá trị đã chết có thể được loại bỏ bằng cách chạy chân không.

Do đó, việc tách trang không thể đảo ngược có thể do chèn hoặc cập nhật khi trang bị lấp đầy giữa các khoảng trống. Phiên bản này đã nâng cao quy trình hút chân không bằng cách phát hiện và loại bỏ các ống hút chết ở giữa các chân không (thông số INDEX_CLEANUP được đặt thành Tự động).

Một cải tiến khác trên hệ thống hút chân không là loại bỏ các trang đã xóa một cách hăng hái. Trong các phiên bản trước, việc xóa các trang đã xóa mất hai chu kỳ chân không, bằng cách đánh dấu trang đầu tiên là đã xóa và chu kỳ thứ hai thực sự giải phóng dung lượng đó.

Điều chỉnh Hiệu suất Truy vấn và Chỉ mục

Quản lý chỉ mục trong điều chỉnh ứng dụng là một cải tiến lớn khác trong PostgreSQL 14. Đặc biệt, REINDEX HIỆN TẠI và TẠO CHỈ SỐ HIỆN TẠI, cho phép nhiều lệnh chạy cùng một lúc mà không can thiệp vào nhau. Thông tin thêm về chỉ mục, chỉ mục BRIN đã trở nên linh hoạt hơn vì chúng có thể ghi lại nhiều giá trị tối thiểu / tối đa trên mỗi phạm vi, có giá trị cho các nhóm giá trị trong mỗi phạm vi trang. Ngoài ra, các chỉ mục BRIN hoạt động hiệu quả với dữ liệu không được bản địa hóa tốt trong heap bằng cách sử dụng bộ lọc bloom.

Tùy chọn FREEZE trong lệnh COPY đã được nâng cao bằng cách cập nhật các bit khả năng hiển thị trang về hiệu suất tải dữ liệu. SAO CHÉP ở chế độ nhị phân giờ đây cũng nhanh hơn.

PostgreSQL 14 đã tinh chỉnh song song truy vấn bằng cách thêm song song truy vấn để LÀM MỚI CHẾ ĐỘ XEM VẬT LIỆU và TRẢ LẠI CÂU HỎI. Những cải tiến này đã được triển khai cho các phép nối vòng lặp lồng nhau và các lần quét tuần tự song song.

PostgreSQL 14 đã tăng số lượng các vị trí thống kê mở rộng có thể được sử dụng cho các biểu thức và ước lượng mệnh đề OR. Không giống như trước đây, thống kê chỉ có trên các cột, giờ đây nó được cho phép trên một nhóm biểu thức. Chế độ xem hệ thống pg_stats_ext_exprs báo cáo các thống kê như vậy.

Bản sao lôgic Nâng cao

Tính năng sao chép lôgic đã được cải thiện để cho phép truyền trực tuyến các giao dịch đang diễn ra trong thời gian dài qua API hoặc tới người đăng ký. Trong các phiên bản trước, các giao dịch lớn hơn logic_decoding_work_mem được ghi vào đĩa cho đến khi giao dịch được hoàn thành trước khi sao chép giao dịch tới người đăng ký. Với những cải tiến mới được áp dụng, bản sao lôgic xử lý khối lượng lớn các câu lệnh DDL hiệu quả hơn.

Sau mỗi lệnh, bản sao lôgic sẽ ghi các thông báo hủy bỏ bộ nhớ cache vào WAL để xử lý bằng cách truyền trực tuyến các giao dịch đang diễn ra. Quá trình này tạo ra những lợi ích đáng kể về hiệu suất.

Giám sát

Một trong những từ thông dụng lớn nhất của năm 2022 là giám sát, vì quản trị viên và nhà phát triển muốn có thêm thông tin chi tiết về hiệu suất theo thời gian. PostgreSQL 14 đã giới thiệu các tính năng mới để trợ giúp cho việc giám sát. Thay đổi quan trọng nhất trong số đó là việc chuyển hệ thống băm truy vấn từ pg_stat_statement sang cơ sở dữ liệu cốt lõi. Giám sát truy vấn đã được cho phép trên một số hệ thống PostgreSQL và các chức năng ghi nhật ký bằng cách sử dụng một ID duy nhất.

Phiên bản này cũng đã giới thiệu các thông số giám sát mới sau:

  1. Idle_session_timeout

  2. REINDEX trên các chỉ mục con của bảng được phân vùng

  3. Maintenance_io_concurrency

  4. Pg_stat_progress_copy

  5. Pg_stat_wal

Nâng cấp lên PostgreSQL 14

Nếu bạn muốn nâng cấp phiên bản PostgreSQL hiện tại của mình lên phiên bản 14, bạn có ba tùy chọn chính sẽ thực hiện tác vụ này:

  1. Pg_dumpall:Đây là một công cụ sao lưu hợp lý cho phép bạn kết xuất dữ liệu của mình và khôi phục nó trong PostgreSQL mới phiên bản. Ở đây bạn sẽ có một khoảng thời gian ngừng hoạt động sẽ thay đổi tùy theo kích thước dữ liệu của bạn. Bạn cần dừng hệ thống hoặc tránh dữ liệu mới trong nút chính, chạy pg_dumpall, di chuyển kết xuất đã tạo sang nút cơ sở dữ liệu mới và khôi phục nó. Trong thời gian này, bạn không thể ghi vào cơ sở dữ liệu PostgreSQL chính của mình để tránh dữ liệu không nhất quán.

  2. Pg_upgrade:Đây là một công cụ PostgreSQL để nâng cấp phiên bản PostgreSQL của bạn. Nó có thể nguy hiểm trong môi trường sản xuất và chúng tôi không khuyến khích phương pháp này trong trường hợp đó. Sử dụng phương pháp này, bạn sẽ có thời gian chết, nhưng có thể sẽ ít hơn đáng kể so với sử dụng phương pháp pg_dump trước đó.

  3. Logical Replication:Kể từ PostgreSQL 10, bạn có thể sử dụng phương pháp sao chép này cho phép bạn thực hiện nâng cấp phiên bản chính mà không (hoặc gần như bằng không) thời gian chết. Bằng cách này, bạn có thể thêm một nút dự phòng trong phiên bản PostgreSQL cuối cùng và khi bản sao được cập nhật, bạn có thể thực hiện quá trình chuyển đổi dự phòng để quảng bá nút PostgreSQL mới.

Để biết thêm thông tin chi tiết về các tính năng mới của PostgreSQL 14, bạn có thể tham khảo Tài liệu chính thức.

Kết thúc

PostgreSQL 14 đã thực sự nâng tầm cuộc chơi cho người dùng cơ sở dữ liệu nguồn mở phổ biến này. Giờ đây, các nhà phát triển và quản trị viên đã cải thiện các khả năng để tăng hiệu suất và khả năng mở rộng cao, cải tiến cho cơ sở dữ liệu phân tán, cải thiện khả năng quan sát, v.v.

ClusterControl giúp việc nâng cấp lên các phiên bản công nghệ mới nhất trở nên đơn giản và dễ dàng. Nếu bạn chưa sử dụng ClusterControl, bạn có thể đánh giá nó miễn phí trong 30 ngày. Để biết thêm chi tiết về bản phát hành mới nhất của ClusterControl 1.9.2, hãy xem toàn bộ ghi chú phát hành.

Cập nhật tất cả tin tức mới nhất và các phương pháp hay nhất cho cơ sở dữ liệu nguồn mở phổ biến nhất bằng cách theo dõi chúng tôi trên Twitter, LinkedIn và đăng ký nhận bản tin của chúng tôi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quản lý tổng hợp kết nối trong ứng dụng web nhiều người thuê với Spring, Hibernate và C3P0

  2. GROUP BY và tổng hợp các giá trị số tuần tự

  3. Làm cách nào để gửi email từ trình kích hoạt PostgreSQL?

  4. Cách cập nhật mảng trong PostgreSQL

  5. lưu trữ kết quả postgresql trong biến bash