Hướng dẫn phân vùng PostgreSQL

Huong Dan Phan Vung Postgresql



Đối với bất kỳ cơ sở dữ liệu nào, hiệu suất là một số liệu phải được giải quyết để có độ tin cậy hiệu quả, đặc biệt khi có liên quan đến dữ liệu lớn. Với PostgreSQL, bạn phải tạo các phân vùng bảng để tiết kiệm thời gian và tài nguyên cần thiết để quét bảng trong khi tìm kiếm bản ghi. Bằng cách chia một bảng lớn thành các phần nhỏ hơn, cần ít trao đổi bộ nhớ hơn và ứng dụng của bạn sẽ hoạt động tốt hơn vì nó tiết kiệm các thao tác cơ sở dữ liệu.

Bài đăng này đề cập đến phân vùng PostgreSQL. Chúng tôi sẽ thảo luận về các tùy chọn phân vùng khác nhau mà bạn có thể sử dụng và đưa ra ví dụ về cách sử dụng chúng để hiểu rõ hơn.

Cách tạo phân vùng PostgreSQL

Bất kỳ cơ sở dữ liệu nào cũng có thể chứa nhiều bảng có nhiều mục nhập. Để quản lý dễ dàng, bạn nên phân vùng các bảng, đây là một thói quen kho dữ liệu tuyệt vời và được khuyên dùng để tối ưu hóa cơ sở dữ liệu và hỗ trợ độ tin cậy. Bạn có thể tạo các phân vùng khác nhau bao gồm danh sách, phạm vi và hàm băm. Hãy thảo luận chi tiết từng vấn đề.







1. Phân vùng danh sách

Trước khi xem xét bất kỳ phân vùng nào, chúng ta phải tạo bảng mà chúng ta sẽ sử dụng cho các phân vùng. Khi tạo bảng, hãy làm theo cú pháp đã cho cho tất cả các phân vùng:



TẠO BẢNG table_name(column1 data_type, colum2 data_type) PHẦN THAM GIA THEO (partition_key);

“table_name” là tên cho bảng của bạn cùng với các cột khác nhau mà bảng sẽ có và kiểu dữ liệu của chúng. Đối với “partition_key”, đó là cột mà việc phân vùng sẽ diễn ra. Ví dụ: hình ảnh sau đây cho thấy chúng tôi đã tạo bảng “khóa học” có ba cột. Hơn nữa, loại phân vùng của chúng tôi là LIST và chúng tôi chọn cột khoa làm khóa phân vùng:







Sau khi tạo bảng, chúng ta phải tạo các phân vùng khác nhau mà chúng ta cần. Để làm được điều đó, hãy tiếp tục với cú pháp sau:

TẠO BẢNG phân vùng_bảng PHẦN THAM GIA CỦA bảng chính CHO CÁC GIÁ TRỊ TRONG (VALUE);

Ví dụ: ví dụ đầu tiên trong hình ảnh sau đây cho thấy rằng chúng tôi đã tạo một bảng phân vùng có tên “Fset” chứa tất cả các giá trị trong cột “khoa” mà chúng tôi đã chọn làm khóa phân vùng có giá trị là “FSET”. Chúng tôi đã sử dụng logic tương tự cho hai phân vùng khác mà chúng tôi đã tạo.



Khi đã có các phân vùng, bạn có thể chèn các giá trị vào bảng chính mà chúng tôi đã tạo. Mỗi giá trị bạn chèn được khớp với phân vùng tương ứng dựa trên các giá trị trong khóa phân vùng mà bạn đã chọn.

Nếu liệt kê tất cả các mục trong bảng chính, chúng ta có thể thấy rằng nó có tất cả các mục mà chúng ta đã chèn vào.

Để xác minh rằng chúng tôi đã tạo thành công các phân vùng, hãy kiểm tra các bản ghi trong từng phân vùng đã tạo.

Lưu ý cách mỗi bảng được phân vùng chỉ chứa các mục phù hợp với tiêu chí được xác định khi phân vùng. Đó là cách phân vùng theo danh sách hoạt động.

2. Phân vùng phạm vi

Một tiêu chí khác để tạo phân vùng là sử dụng tùy chọn RANGE. Đối với điều này, chúng ta phải chỉ định giá trị bắt đầu và kết thúc để sử dụng cho phạm vi. Sử dụng phương pháp này là lý tưởng khi làm việc với ngày tháng.

Cú pháp tạo bảng chính như sau:

TẠO BẢNG tên bảng (cột1 data_type, cột2 data_type) PHẦN THAM GIA THEO PHẠM VI (partition_key);

Chúng tôi đã tạo bảng “cust_orders” và chỉ định bảng này để sử dụng ngày làm “partition_key” của chúng tôi.

Để tạo các phân vùng, hãy sử dụng cú pháp sau:

TẠO BẢNG phân vùng_bảng PHẦN THAM GIA CỦA bảng chính CHO CÁC GIÁ TRỊ TỪ (start_value) ĐẾN (end_value);

Chúng tôi đã xác định các phân vùng của mình hoạt động hàng quý bằng cách sử dụng cột “ngày”.

Sau khi tạo tất cả các phân vùng và chèn dữ liệu, bảng của chúng tôi trông như thế này:

Nếu chúng tôi kiểm tra các mục trong các phân vùng đã tạo, chúng tôi sẽ xác minh rằng phân vùng của chúng tôi hoạt động và chúng tôi chỉ có các bản ghi phù hợp theo tiêu chí phân vùng mà chúng tôi đã chỉ định. Đối với tất cả các mục mới mà bạn thêm vào bảng của mình, chúng sẽ tự động được thêm vào phân vùng tương ứng.

3. Phân vùng băm

Tiêu chí phân vùng cuối cùng mà chúng ta sẽ thảo luận là sử dụng hàm băm. Hãy nhanh chóng tạo bảng chính bằng cú pháp sau:

TẠO BẢNG table_name(cột1 data_type, cột2 data_type) PHẦN THAM GIA BẰNG HASH (partition_key);

Khi phân vùng bằng hàm băm, bạn phải cung cấp mô-đun và phần dư, các hàng được chia cho giá trị băm của “partition_key” được chỉ định của bạn. Đối với trường hợp của chúng tôi, chúng tôi sử dụng mô đun 4.

Cú pháp của chúng tôi như sau:

TẠO BẢNG phân vùng_bảng PHẦN THAM GIA CỦA bảng chính CHO CÁC GIÁ TRỊ VỚI (MODULUS num1, REMAINDER num2);

Phân vùng của chúng tôi như sau:

Đối với “main_table”, nó chứa các mục được hiển thị như sau:

Đối với các phân vùng đã tạo, chúng tôi có thể truy cập nhanh chóng các mục nhập của chúng và xác minh rằng phân vùng của chúng tôi hoạt động.

Phần kết luận

Phân vùng PostgreSQL là một cách tiện dụng để tối ưu hóa cơ sở dữ liệu nhằm tiết kiệm thời gian và nâng cao độ tin cậy. Chúng tôi đã thảo luận chi tiết về việc phân vùng bao gồm các tùy chọn khác nhau có sẵn. Hơn nữa, chúng tôi đã cung cấp các ví dụ về cách triển khai các phân vùng. Thử chúng ra!