3 điểm bởi GN⁺ 2023-08-30 | 1 bình luận | Chia sẻ qua WhatsApp
  • Bài viết bàn về các kỹ thuật giải phóng dung lượng lưu trữ trong cơ sở dữ liệu mà không cần xóa chỉ mục hay xóa dữ liệu.
  • Các chỉ mục không được sử dụng được xác định và xóa đi để giải phóng dung lượng lưu trữ.
  • Bảng và chỉ mục được xây dựng lại để dọn dẹp phần dung lượng không cần thiết.
  • PostgreSQL 13 giới thiệu tính năng khử trùng lặp cho chỉ mục B-Tree, giúp giảm kích thước các chỉ mục có giá trị trùng lặp.
  • Có thể xây dựng lại bảng bằng extension pg_repack để giảm bloat mà không cần downtime.
  • Trong PostgreSQL, các giá trị NULL cũng được lập chỉ mục nên chiếm dụng dung lượng không cần thiết.
  • Chỉ mục một phần được tận dụng để giảm kích thước chỉ mục bằng cách loại trừ các giá trị NULL.
  • Bài viết cung cấp các truy vấn và lệnh để thực hiện những công việc này.
  • Các kỹ thuật được đề cập có thể tối ưu hóa việc sử dụng dung lượng lưu trữ và cải thiện hiệu năng cơ sở dữ liệu.
  • Trong các ứng dụng quy mô lớn được xây dựng bằng Django, chỉ mục một phần được dùng để tối ưu dung lượng lưu trữ và cải thiện hiệu năng.
  • Chỉ mục một phần không chỉ có thể loại trừ giá trị null mà còn loại trừ các giá trị thường xuyên hoặc hoàn toàn không được truy vấn.
  • Việc chuyển một chỉ mục cụ thể thành chỉ mục một phần loại trừ giá trị null có thể tiết kiệm khoảng 1,3GB dung lượng lưu trữ.
  • Xóa chỉ mục trên bản sao chép có thể giải phóng thêm dung lượng lưu trữ.
  • Bài viết đưa ra mẹo để ngăn Django tạo chỉ mục ngầm cho khóa ngoại và để di chuyển chỉ mục đầy đủ hiện có sang chỉ mục một phần mà không gây downtime hoặc suy giảm hiệu năng.
  • Bài viết nhấn mạnh tầm quan trọng của việc tối ưu định nghĩa chỉ mục để tối đa hóa hiệu quả lưu trữ và hiệu năng.

1 bình luận

 
GN⁺ 2023-08-30
Ý kiến Hacker News
  • Việc làm cho chỉ mục nhỏ hơn vẫn có lợi ngay cả khi có đủ dung lượng lưu trữ.
  • Với những người có phần cứng riêng, phân bổ thêm không gian lưu trữ là một lựa chọn hợp lý.
  • Khử trùng lặp B-tree trong PostgreSQL 13 có thể hữu ích cho các giá trị NULL trong chỉ mục khóa ngoại.
  • Bài viết này cung cấp các kỹ thuật và góc nhìn hữu ích để tối ưu hiệu quả sử dụng không gian của PostgreSQL.
  • Với các công ty mới thành lập hoặc đang ở giai đoạn đầu, thêm dung lượng đĩa thường là lựa chọn tốt hơn so với tối ưu kích thước.
  • Sắp xếp lại thứ tự cột trong bảng và dùng script có thể giúp tiết kiệm đáng kể dung lượng lưu trữ.
  • Phân bố dữ liệu bất đối xứng có thể dẫn đến phình to chỉ mục và cần thao tác vacuum hiệu quả hơn.
  • Bài viết này đã nhận được phản hồi tích cực trên Hacker News.
  • Khuyến nghị dùng pganalyze.com để phát hiện các chỉ mục không được sử dụng và các cơ hội tối ưu hóa.
  • Các kiểu chỉ mục PostgreSQL ít phổ biến và chỉ mục cho giá trị NULL không được biết đến rộng rãi.
  • Việc tăng lượng dữ liệu có thể ảnh hưởng lớn đến thời gian chèn và hiệu năng.
  • Nguyên tắc này vẫn có thể áp dụng ngay cả khi cột có tỷ lệ giá trị phổ biến cao.