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

Có gì mới trong PostgreSQL 11

PostgreSQL 11 được phát hành vào ngày 10 tháng 10 năm 2018 và đúng lịch trình, đánh dấu kỷ niệm 23 năm cơ sở dữ liệu nguồn mở ngày càng phổ biến.

Mặc dù danh sách đầy đủ các thay đổi có sẵn trong Ghi chú phát hành thông thường, nhưng bạn nên xem trang Ma trận tính năng đã được cải tiến, giống như tài liệu chính thức đã nhận được sự thay đổi kể từ phiên bản đầu tiên, giúp dễ dàng phát hiện các thay đổi hơn trước khi đi sâu vào chi tiết .

Ví dụ:trên trang Ghi chú phát hành, "Liên kết kênh để xác thực SCAM" được chôn dưới Mã nguồn trong khi ma trận có nó trong phần Bảo mật. Đối với những người tò mò, đây là ảnh chụp màn hình của giao diện:

Ma trận tính năng PostgreSQL

Ngoài ra, trang Ghi chú Phát hành Bucardo Postgres được liên kết ở trên, rất tiện dụng theo cách riêng của nó, giúp bạn dễ dàng tìm kiếm một từ khóa trên tất cả các phiên bản.

Có gì mới? Với hàng trăm thay đổi theo đúng nghĩa đen, tôi sẽ xem xét các điểm khác biệt được liệt kê trong Ma trận tính năng.

Bao gồm các chỉ mục cho cây B (BAO GỒM)

CREATE INDEX đã nhận được mệnh đề INCLUDE cho phép các chỉ mục bao gồm các cột không phải khóa . Trường hợp sử dụng của nó cho các truy vấn giống nhau thường xuyên, được mô tả kỹ trong cam kết của Tom Lane từ ngày 22 tháng 11, cập nhật tài liệu phát triển (có nghĩa là tài liệu PostgreSQL 11 hiện tại chưa có), vì vậy, để biết toàn văn, hãy tham khảo phần 11.9. Chỉ mục quét và che chỉ mục trong phiên bản phát triển.

CREATE INDEX song song cho các chỉ mục cây B

Như đã đề cập trong tên, tính năng này chỉ được triển khai cho các chỉ mục B-tree và từ nhật ký cam kết của Robert Haas, chúng tôi biết rằng việc triển khai có thể được tinh chỉnh trong tương lai. Như đã lưu ý từ tài liệu CREATE INDEX, trong khi cả hai phương pháp tạo chỉ mục song song và đồng thời đều tận dụng được nhiều CPU, trong trường hợp CONCURRENT, chỉ quá trình quét bảng đầu tiên sẽ được thực hiện song song.

Liên quan đến tính năng mới này là các thông số cấu hình Maint_work_mem duy trì_parallel_maintenance_workers .

Cuối cùng, số lượng nhân viên song song có thể được đặt trên mỗi bảng bằng lệnh ALTER TABLE và chỉ định một giá trị cho song song_công việc .

Tải xuống Báo cáo chính thức hôm nay Quản lý &Tự động hóa PostgreSQL với ClusterControlTìm hiểu về những điều bạn cần biết để triển khai, giám sát, quản lý và mở rộng PostgreSQLTải xuống Báo cáo chính thức

Biên soạn Just-In-Time (JIT) để Đánh giá Biểu hiện và Biến dạng Tuple

Với chương JIT riêng trong tài liệu, tính năng mới này dựa trên việc PostgreSQL được biên dịch với hỗ trợ LLVM (sử dụng pg_config để xác minh).

Chủ đề về JIT trong PostgreSQL đủ phức tạp (xem tham chiếu JIT README trong tài liệu) để yêu cầu một blog chuyên dụng, trong khi đó, blog CitusData trên JIT là một bài đọc rất tốt cho những ai quan tâm để tìm hiểu sâu hơn về chủ đề này.

Kết hợp băm song song

Cải thiện hiệu suất này đối với các truy vấn song song là kết quả của việc thêm một bảng băm được chia sẻ, như Thomas Munro giải thích trong blog Parallel Hash cho PostgreSQL của mình, tránh phân vùng bảng băm với điều kiện là nó phù hợp với work_mem , cho đến nay đối với PostgreSQL dường như là một giải pháp tốt hơn so với thuật toán phân vùng đầu tiên. Cùng một blog mô tả những trở ngại về kiến ​​trúc PostgreSQL mà tác giả đã phải vượt qua trong nhiệm vụ thêm tính năng song song vào các phép nối băm nói lên mức độ phức tạp của công việc được yêu cầu để triển khai tính năng này.

Phân vùng mặc định

Đây là một phân vùng bắt tất cả để lưu trữ các hàng không khớp với bất kỳ phân vùng đã xác định nào khác. Trong trường hợp một phân vùng mới được thêm vào, một ràng buộc KIỂM TRA được khuyến nghị để tránh quá trình quét phân vùng mặc định có thể bị chậm khi phân vùng mặc định chứa một số lượng lớn hàng.

Hành vi phân vùng mặc định được giải thích trong tài liệu về ALTER TABLE và CREATE TABLE.

Phân vùng bằng Hash Key

Còn được gọi là phân vùng băm, và như đã chỉ ra trong thông báo cam kết, tính năng này cho phép phân vùng các bảng theo cách mà các phân vùng sẽ chứa một số lượng hàng tương tự. Điều này đạt được bằng cách cung cấp một mô-đun, trong trường hợp đơn giản hơn được khuyến nghị là bằng với số lượng phân vùng và phần còn lại phải khác nhau đối với mỗi phân vùng.

Để biết thêm chi tiết và xem ví dụ, hãy xem trang tài liệu TẠO BẢNG.

Hỗ trợ cho KHÓA CHÍNH, KHÓA NGOẠI TỆ, Chỉ mục và Trình kích hoạt trên các bảng được phân vùng

Phân vùng bảng đã là một bước tiến lớn trong việc cải thiện hiệu suất của các bảng lớn và việc bổ sung các tính năng này giải quyết những hạn chế mà các bảng được phân vùng mắc phải kể từ PostgreSQL 10 khi “phân vùng khai báo” kiểu hiện đại được giới thiệu.

Công việc của Alvaro Herrera đang được tiến hành để cho phép các khóa ngoại tham chiếu đến các khóa chính và được lên lịch cho phiên bản chính PostgreSQL 12.

CẬP NHẬT trên Khóa phân vùng

Như đã giải thích trong bản ghi cam kết bản vá, bản cập nhật này ngăn PostgreSQL gặp lỗi khi cập nhật khóa phân vùng làm mất hiệu lực một hàng và thay vào đó, hàng đó sẽ được chuyển đến một phân vùng thích hợp.

Liên kết kênh để xác thực SCRAM

Đây là một biện pháp bảo mật nhằm ngăn chặn các cuộc tấn công trung gian trong Xác thực SASL và được trình bày chi tiết kỹ lưỡng trong blog của tác giả. Tính năng này yêu cầu tối thiểu OpenSSL 1.0.2.

TẠO QUY TRÌNH VÀ Cú pháp GỌI cho các thủ tục được lưu trữ trong SQL

PostgreSQL đã có CHỨC NĂNG TẠO từ năm 1996, với phiên bản 1.0.1 Tuy nhiên, các chức năng không thể xử lý các giao dịch. Như đã đề cập trong tài liệu, lệnh CREATE PROCEDURE không hoàn toàn tương thích với tiêu chuẩn SQL.

Lưu ý:Hãy theo dõi blog sắp tới đi sâu vào tính năng này

Kết luận

Các bản cập nhật lớn của PostgreSQL 11 tập trung vào cải tiến hiệu suất thông qua thực thi song song, phân vùng và biên dịch Just-In-Time. Các thủ tục được lưu trữ cho phép kiểm soát toàn bộ giao dịch và có thể được viết bằng nhiều ngôn ngữ PL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểm tra PostgreSQL bằng pgAudit

  2. Truy vấn đệ quy được sử dụng để đóng bắc cầu

  3. Chia bản ghi do hàm trả về thành nhiều cột

  4. Liệu UUID làm khóa chính trong PostgreSQL có cho hiệu suất chỉ mục kém không?

  5. Cách đạt được tính khả dụng cao của PostgreSQL với pgBouncer