Câu hỏi phỏng vấn Cosmos DB
Câu hỏi

Liệt kê các loại chỉ mục trong Cosmos DB?

Câu trả lời

Azure Cosmos DB hỗ trợ nhiều loại chỉ mục khác nhau để tối ưu hóa hiệu suất truy vấn dựa trên các loại truy vấn và dữ liệu mà bạn đang làm việc. Dưới đây là các loại chỉ mục chính được hỗ trợ trong Cosmos DB:

1. Chỉ mục phạm vi (Range Index)

  • Mục đích: Chỉ mục phạm vi hỗ trợ các truy vấn bằng, truy vấn phạm vi, và các truy vấn sử dụng hàm trên chuỗi.
  • Ứng dụng: Dùng cho các truy vấn kiểu WHERE, ORDER BY, và các hàm như CONTAINS.
  • Ví dụ:
    sql Copy
    SELECT * FROM c WHERE c.age > 30
    SELECT * FROM c WHERE CONTAINS(c.name, 'John')

2. Chỉ mục không gian (Spatial Index)

  • Mục đích: Chỉ mục không gian hỗ trợ các truy vấn trên đối tượng địa lý.
  • Ứng dụng: Dùng cho các truy vấn kiểu ST_DISTANCE, ST_WITHIN, và ST_INTERSECTS.
  • Ví dụ:
    sql Copy
    SELECT * FROM c WHERE ST_DISTANCE(c.location, {'type': 'Point', 'coordinates':[1.0, 100.0]}) < 10000

3. Chỉ mục hợp thành (Composite Index)

  • Mục đích: Tăng hiệu quả khi thực hiện các hoạt động trên nhiều trường.
  • Ứng dụng: Dùng cho các truy vấn ORDER BY trên nhiều thuộc tính và các truy vấn có bộ lọc kết hợp với ORDER BY.
  • Ví dụ:
    sql Copy
    SELECT * FROM c ORDER BY c.age, c.name

4. Chỉ mục vector (Vector Index)

  • Mục đích: Tăng hiệu quả khi thực hiện tìm kiếm vector sử dụng hàm VectorDistance.
  • Ứng dụng: Dùng cho các truy vấn tìm kiếm vector và các bộ lọc phạm vi trên điểm số tương đồng.
  • Ví dụ:
    sql Copy
    SELECT c.name FROM c ORDER BY VectorDistance(c.vector1, c.vector2)

Mỗi loại chỉ mục này được thiết kế để hỗ trợ các loại truy vấn và yêu cầu dữ liệu cụ thể, giúp tối ưu hóa hiệu suất và chi phí khi truy vấn dữ liệu trong Cosmos DB. Để biết thêm chi tiết về cách cấu hình các loại chỉ mục này, bạn có thể tham khảo tài liệu chính thức của Microsoft Azure tại đây.

junior

junior

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

middle

Quy tắc chung để chọn Partition Key lý tưởng trong CosmosDB là gì?

senior

Tại sao không đặt người dùng, bài viết và bình luận vào chỉ một container trong Cosmos DB?

junior

RU trong Cosmos DB là gì?

Bình luận

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

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