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

Có gì mới trong PostgreSQL 13?

PostgreSQL, còn được gọi là cơ sở dữ liệu mã nguồn mở tiên tiến nhất thế giới, đã có phiên bản phát hành mới kể từ ngày 24 tháng 9 năm 2020 vừa qua, và bây giờ nó đã trưởng thành, chúng ta có thể kiểm tra xem có gì mới ở đó để bắt đầu suy nghĩ về một kế hoạch di cư. PostgreSQL 13 có sẵn với nhiều tính năng và cải tiến mới. Trong blog này, chúng tôi sẽ đề cập đến một số tính năng mới này và xem cách triển khai hoặc nâng cấp phiên bản PostgreSQL hiện tại của bạn.

PostgreSQL 13 Tính năng mới và Cải tiến

Hãy bắt đầu đề cập đến một số tính năng và cải tiến mới của phiên bản PostgreSQL 13 này mà bạn có thể xem trong Tài liệu chính thức.

Phân vùng

  • Cho phép cắt bớt phân vùng và nối theo phân vùng xảy ra trong nhiều trường hợp hơn

  • Hỗ trợ cấp độ hàng TRƯỚC khi kích hoạt trên các bảng được phân vùng

  • Cho phép sao chép các bảng đã phân vùng một cách hợp lý thông qua xuất bản

  • Cho phép sao chép hợp lý thành các bảng được phân vùng trên người đăng ký

  • Cho phép các biến toàn hàng được sử dụng trong biểu thức phân vùng

Chỉ mục

  • Lưu trữ các bản sao trong chỉ mục B cây hiệu quả hơn

  • Cho phép lập chỉ mục GiST và SP-GiST trên các cột hộp để hỗ trợ ORDER BY hộp <-> truy vấn điểm

  • Cho phép các chỉ mục GIN xử lý hiệu quả hơn! (KHÔNG) mệnh đề trong tìm kiếm tsquery

  • Cho phép các lớp toán tử chỉ mục nhận tham số

Trình tối ưu hóa

  • Cải thiện ước tính tính chọn lọc của trình tối ưu hóa cho các toán tử ngăn chặn / đối sánh

  • Cho phép đặt mục tiêu thống kê cho thống kê mở rộng

  • Cho phép sử dụng nhiều đối tượng thống kê mở rộng trong một truy vấn duy nhất

  • Cho phép sử dụng đối tượng thống kê mở rộng cho mệnh đề OR và IN / ANY danh sách hằng số

  • Cho phép các hàm trong mệnh đề FROM được kéo lên (nội dòng) nếu chúng đánh giá là hằng số

Hiệu suất

  • Thực hiện sắp xếp gia tăng và cải thiện hiệu suất sắp xếp các giá trị inet

  • Cho phép tập hợp băm sử dụng lưu trữ đĩa cho các tập kết quả tổng hợp lớn

  • Cho phép chèn, không chỉ cập nhật và xóa, để kích hoạt hoạt động hút bụi trong autovacuum

  • Thêm tham số Maint_io_concurrency để kiểm soát I / O đồng thời cho các hoạt động bảo trì

  • Cho phép bỏ qua việc ghi WAL trong một giao dịch tạo hoặc viết lại một quan hệ, nếu wal_level là tối thiểu

  • Cải thiện hiệu suất khi phát lại lệnh DROP DATABASE khi nhiều vùng bảng đang được sử dụng

  • Tăng tốc độ chuyển đổi số nguyên thành văn bản

  • Giảm mức sử dụng bộ nhớ cho các chuỗi truy vấn và tập lệnh mở rộng chứa nhiều câu lệnh SQL

Giám sát

  • Cho phép EXPLAIN, auto_explain, autovacuum và pg_stat_statements theo dõi thống kê sử dụng WAL

  • Cho phép ghi nhật ký một mẫu câu lệnh SQL thay vì tất cả các câu lệnh

  • Thêm loại phụ trợ vào csvlog và tùy chọn đầu ra nhật ký log_line_prefix

  • Cải thiện khả năng kiểm soát ghi nhật ký tham số câu lệnh đã chuẩn bị sẵn

  • Thêm leader_pid vào pg_stat_activity để báo cáo quy trình của người lãnh đạo song song

  • Thêm chế độ xem hệ thống pg_stat_progress_basebackup để báo cáo tiến trình phát trực tuyến các bản sao lưu cơ sở

  • Thêm chế độ xem hệ thống pg_stat_progress_analyze để báo cáo ANALYZE tiến trình

  • Thêm chế độ xem hệ thống pg_shmem_allocations để hiển thị mức sử dụng bộ nhớ dùng chung

Sao chép và Phục hồi

  • Cho phép thay đổi cài đặt cấu hình sao chép trực tuyến bằng cách tải lại

  • Cho phép bộ thu WAL sử dụng vị trí sao chép tạm thời khi một vị trí cố định không được chỉ định

  • Cho phép bộ nhớ WAL cho các vị trí sao chép bị giới hạn bởi max_slot_wal_keep_size

  • Cho phép quảng cáo ở chế độ chờ hủy mọi yêu cầu tạm dừng

  • Tạo lỗi nếu khôi phục không đạt được mục tiêu khôi phục đã chỉ định

  • Cho phép kiểm soát lượng bộ nhớ được sử dụng bằng cách giải mã logic trước khi bị tràn vào đĩa

  • Cho phép tiếp tục khôi phục ngay cả khi các trang không hợp lệ được WAL tham chiếu

Lệnh Tiện ích

  • Cho phép VACUUM xử lý song song các chỉ mục của bảng

  • Báo cáo việc sử dụng bộ đệm thời gian lập kế hoạch trong đầu ra BUFFER của EXPLAIN

  • Tạo TẠO BẢNG NHƯ tuyên truyền thuộc tính NO INHERIT của ràng buộc CHECK tới bảng đã tạo

  • Thêm ALTER TABLE ... DROP EXPRESSION để cho phép xóa thuộc tính GENERATED khỏi cột

  • Thêm cú pháp ALTER VIEW để đổi tên các cột chế độ xem

  • Thêm tùy chọn ALTER TYPE để sửa đổi các thuộc tính TOAST của loại cơ sở và các chức năng hỗ trợ

  • Thêm tùy chọn TẠO VỊ TRÍ CƠ SỞ DỮ LIỆU

  • Cho phép DROP DATABASE ngắt kết nối các phiên sử dụng cơ sở dữ liệu mục tiêu, cho phép thả thành công

Và nhiều thay đổi khác. Chúng tôi chỉ đề cập một số trong số họ để tránh một bài đăng blog lớn hơn. Bây giờ, hãy xem cách triển khai phiên bản mới này.

Cách triển khai PostgreSQL 13

Đối với điều này, chúng tôi sẽ giả định rằng bạn đã cài đặt ClusterControl, nếu không, bạn có thể làm theo tài liệu tương ứng để cài đặt nó.

Để thực hiện triển khai từ ClusterControl, chỉ cần chọn tùy chọn Triển khai và làm theo hướng dẫn xuất hiện.

Khi chọn PostgreSQL, bạn phải chỉ định Người dùng, Khóa hoặc Mật khẩu và Cổng để kết nối bằng SSH với máy chủ của bạn. Bạn cũng có thể thêm tên cho cụm mới của mình và nếu bạn muốn ClusterControl cài đặt phần mềm và cấu hình tương ứng cho bạn.

Sau khi thiết lập thông tin truy cập SSH, bạn cần xác định thông tin đăng nhập cơ sở dữ liệu , phiên bản và datadir (tùy chọn). Bạn cũng có thể chỉ định kho lưu trữ nào sẽ sử dụng.

Trong bước tiếp theo, bạn cần thêm máy chủ của mình vào cụm mà bạn sẽ tạo bằng Địa chỉ IP hoặc Tên máy chủ.

Trong bước cuối cùng, bạn có thể chọn xem bản sao của mình sẽ là Đồng bộ hay Không đồng bộ, và sau đó chỉ cần nhấn vào Triển khai.

Khi nhiệm vụ hoàn thành, bạn có thể thấy cụm PostgreSQL mới của mình trong màn hình ClusterControl chính.

Bây giờ bạn đã tạo cụm của mình, bạn có thể thực hiện một số tác vụ trên đó, như thêm bộ cân bằng tải (HAProxy), bộ làm mát kết nối (PgBouncer) hoặc nô lệ sao chép mới từ cùng một giao diện người dùng ClusterControl.

Nâng cấp lên PostgreSQL 13

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 mới này, bạn có ba tùy chọn chính sẽ thực hiện tác vụ này.

  • Pg_dump:Đâ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_dump, 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.

  • Pg_upgrade:Đây là một công cụ PostgreSQL để nâng cấp phiên bản PostgreSQL của bạn tại chỗ. 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 cũng sẽ có thời gian chết, nhưng có lẽ nó sẽ ít hơn đáng kể so với sử dụng phương pháp pg_dump trước đó.

  • Bản sao lôgic: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 lớn với 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 13, bạn có thể tham khảo Tài liệu chính thức.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Duy trì UUID trong PostgreSQL bằng JPA

  2. Nhận các giá trị mặc định của các cột trong bảng trong Postgres?

  3. Chế độ postgresql H2 dường như không hoạt động với tôi

  4. Làm thế nào để cấu hình Cơ sở dữ liệu PostgreSQL?

  5. PostgreSQL Replication để phục hồi sau thảm họa