Các truy vấn chéo phân vùng trong Cosmos DB là gì?
Các truy vấn chéo phân vùng trong Cosmos DB là gì?
Trong Azure Cosmos DB, truy vấn chéo phân vùng (cross-partition query) là loại truy vấn mà không giới hạn truy vấn trong một phân vùng logic duy nhất mà phải tìm kiếm dữ liệu qua nhiều phân vùng vật lý. Điều này thường xảy ra khi truy vấn không bao gồm bộ lọc trên partition key
hoặc khi bộ lọc không chỉ định một giá trị cụ thể cho partition key
.
Khi bạn thực hiện một truy vấn không có bộ lọc partition key
, Cosmos DB phải kiểm tra mọi phân vùng vật lý để tìm kiếm dữ liệu phù hợp. Mỗi phân vùng vật lý có chỉ mục riêng của nó, và truy vấn sẽ được thực hiện trên mỗi chỉ mục này. Cosmos DB sau đó tự động tổng hợp kết quả từ các phân vùng khác nhau.
Giả sử bạn có một truy vấn tìm kiếm tất cả các mục có Location = 'Seattle'
nhưng không chỉ định partition key
:
SELECT * FROM c WHERE c.Location = 'Seattle'
Truy vấn này sẽ phải được thực hiện trên tất cả các phân vùng vật lý, vì không có bộ lọc nào trên partition key
để hạn chế phạm vi truy vấn.
partition key
trong bộ lọc truy vấn để hạn chế phạm vi truy vấn đến một hoặc một số phân vùng cụ thể.Azure Cosmos DB cũng hỗ trợ thực thi truy vấn song song qua các phân vùng, giúp giảm độ trễ cho các truy vấn chéo phân vùng. Bạn có thể điều chỉnh các tham số như MaxConcurrency
và MaxBufferedItemCount
để quản lý hiệu suất truy vấn song song.
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào