Khám phá postgresql 13

Văn hóa chúng ta thường rất ngại số 13 và trong cuộc sống bạn có thường hay thấy người ta làm các việc tốt, tổ chức các tiệc khai trương, đặt tên thang máy tòa nhà cao tầng…v..v… là 13 chưa? Chắc cũng có nhưng rất là hiếm. Tại sao vậy? Thật sự tôi cũng không biết nữa.

Tôi không phải là người ủng hộ theo triết lý này. Bạn có biết ở Việt Nam chúng ta có tập đoàn công nghệ thông tin hàng đầu nào toàn chọn ngày 13 để làm khai trương các chi nhánh từ Bắc chí Nam không? Và cuối cùng họ đã rất thành công.Câu trả lời chắc bạn cũng đã biết.

Có thể cũng không phải vì tập đoàn ấy do chọn số 13 mà thành công mà có lẻ bởi vì người ta dám nghĩ khác để thay đổi. Và số 13 vô tình trở thành con số may mắn. Vì vậy bạn có muốn suy nghĩ khác, có muốn hệ thống database của công ty mình cải thiện khác hơn không?

Hãy cùng tôi khám phá postgresql 13 nhé

1.Tối ưu B-Tree index

Nếu bạn có một chỉ mục B-tree chứa các giá trị lặp lại, bạn có thể tận dụng tính năng này trong Postgres 13 để chỉ mục của bạn chiếm ít dung lượng hơn trên đĩa! Tôi sẽ chứng minh điều này cho bạn thấy nhé.

CREATE TABLE abc (x int PRIMARY KEY, y int);

CREATE INDEX ON abc (y);

INSERT INTO abc

SELECT x, x % 16378

FROM generate_series(1,1000000) x;

SELECT pg_size_pretty(pg_relation_size('abc_y_idx'));

Thực hiện trên PG 12:

Thực hiện trên PG 13:

Kết quả là:

Postgres 12: 28MB

Postgres 13: 9.5MB

Với PG13 , dung lượng ổ đĩa đã được giảm gần 3 lần. Khi hệ thống database của bạn lớn thì điều này cực kỳ có ý nghĩa. Đó là về mặt dung lượng lưu trữ còn về hiệu suất thì thế nào?

Chúng ta hãy cùng thử nghiệm:

EXPLAIN ANALYZE SELECT count(*) FROM abc WHERE y = 50;

Thực hiện trên PG12:

Thực hiện trên PG13:

Wow, kết quả là PG13 nhanh hơn nhiều lần so với PG12 về hiệu suất xử lý trong trường hợp ví dụ này.

Vì vậy nếu bạn nâng cấp hệ thống của bạn lên PG 13 thì chắc chắn cải thiện được rất nhiều.

2.Tối ưu sort giúp truy vấn nhanh hơn, làm tăng performance cho database

Tính năng sắp xếp gia tăng mới trong Postgres 13 cho phép bạn tận dụng chỉ mục cho phần đầu tiên của thứ tự, giúp tăng hiệu suất đáng kể.

Hãy xem điều này bằng ví dụ dưới đây.

(Chú ý: chúng ta nhớ xóa index ở mục 1 DROP INDEX abc_y_idx; để thấy được tính năng mới này nhé)

EXPLAIN ANALYZE SELECT * FROM abc WHERE x % 13 = 0 ORDER BY x, y DESC LIMIT 13;

Thực hiện trên PG12:

Thực hiện trên PG13:

Wow..bạn nhìn thấy kết quả là PG13 hiệu suất gấp nhiều lần PG12. Thật đáng ngưỡng mộ.

Nó tối ưu performance rất tốt cho hệ thống database của bạn.

3.Tối ưu vacuum

Nhờ tính năng “vacuum indexes in parallel” giúp rút ngắn thời gian vacuum rất nhiều. Điều này giúp bạn rút ngắn thời gian maintain hệ thống. Database càng lớn thì việc này càng có ý nghĩa rất lớn trong bảo trì sức khỏe của hệ thống data.

Trên đây chỉ một vài demo nhỏ nhưng bạn cũng thấy giá trí của version 13 (con số mà ai cũng ngại) mang lại cho hiệu suất hệ thống database thế nào nếu được nâng cấp . Ngoài ra, bạn có thể tìm hiểu thêm nhiều tính năng mới và rất hay của PG13 tại link https://www.postgresql.org/docs/13/release-13.html.

Cảm ơn bạn đã đọc bài viết này.

Facebook Comments Box