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

Làm sao để thiết kế schema có khả năng mở rộng (scalable schema) trên hàng tỷ bản ghi?

Câu trả lời

markdown
Thiết kế schema có khả năng mở rộng cho hàng tỷ bản ghi đòi hỏi sự cân nhắc kỹ lưỡng về kiến trúc cơ sở dữ liệu và cách tổ chức dữ liệu.

Chọn kiểu cơ sở dữ liệu phù hợp: Hãy xem xét sử dụng NoSQL (như MongoDB, Cassandra) khi lượng dữ liệu rất lớn và không nhất thiết phải có mối quan hệ phức tạp. Cho các bài toán có cấu trúc rõ ràng và mối quan hệ, RDBMS vẫn là lựa chọn tốt, nhưng cần tối ưu hóa chỉ mục cũng như cách lưu trữ.

Thiết kế bảng và phân vùng: Áp dụng phân vùng (partitioning) để quản lý hiệu quả tập dữ liệu lớn, chia dữ liệu thành các đoạn nhỏ (như tháng, năm, địa lý hay loại dữ liệu). Điều này giúp giảm tải mỗi truy vấn chỉ cần tập trung vào một phần dữ liệu nhỏ hơn.

Sử dụng các chỉ mục thông minh: Đảm bảo chỉ mục phù hợp với các trường thường xuyên tìm kiếm và lọc. Tránh chỉ mục quá nhiều vì có thể gây ra chi phí lưu trữ và chi phí cập nhật dữ liệu cao.

**Tối ưu hóa cấu tr...

middle

middle

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

middle

Bạn xử lý retry logic như thế nào để tránh race condition khi đồng bộ?

middle

Bạn giải thích thế nào về isolation level trong ACID? Khi nào nên dùng READ COMMITTED vs SERIALIZABLE?

middle

Tại sao nhiều index có thể làm chậm INSERT/UPDATE/DELETE? Cách khắc phục?

Bình luận

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

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