Câu hỏi phỏng vấn Databases
Câu hỏi

Khi bảng có hàng tỷ dòng, bạn tổ chức partitioning như thế nào? Range hay List?

Câu trả lời

Đặc điểm

Partitioning là kỹ thuật quan trọng trong quản lý cơ sở dữ liệu lớn, đặc biệt khi bảng có hàng tỷ dòng. Có hai phương pháp phổ biến: Range và List.

  • Range Partitioning: Phân chia dữ liệu dựa trên khoảng giá trị nhất định của một hoặc nhiều cột. Thích hợp cho dữ liệu có tính tuần tự hoặc liên tục, như ngày tháng hoặc ID tăng dần. Dễ dàng quản lý và cho phép tối ưu hóa truy vấn tốt hơn nếu thường xuyên sử dụng các điều kiện BETWEEN hoặc so sánh.

  • List Partitioning: Phân chia dữ liệu dựa trên giá trị riêng lẻ của cột, ví dụ như danh mục sản phẩm hoặc trạng thái đơn hàng. Thích hợp cho các tập dữ liệu rời rạc hoặc không liên quan lẫn nhau, đảm bảo việc lọc được thực hiện nhanh chóng với giá trị cụ thể.

So sánh

  • Phạm vi ứng dụng: Range p...
middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Làm sao để xử lý dynamic schema khi dữ liệu thay đổi thường xuyên (ví dụ: JSONB trong PostgreSQL)?

senior

Làm sao để kiểm soát dữ liệu cũ, expired data khi lưu trữ trong nhiều năm?

middle

Bạn triển khai horizontal partitioning (sharding) như thế nào cho hệ thống database phân tán?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào