DynamoDB - Chỉ mục
DynamoDB sử dụng chỉ mục cho các thuộc tính khóa chính để cải thiện quyền truy cập. Chúng tăng tốc độ truy cập ứng dụng và truy xuất dữ liệu, đồng thời hỗ trợ hiệu suất tốt hơn bằng cách giảm độ trễ ứng dụng.
Chỉ mục phụ
Chỉ mục phụ chứa một tập hợp con thuộc tính và một khóa thay thế. Bạn sử dụng nó thông qua truy vấn hoặc thao tác quét, thao tác này nhắm mục tiêu chỉ mục.
Nội dung của nó bao gồm các thuộc tính bạn chiếu hoặc sao chép. Khi tạo, bạn xác định một khóa thay thế cho chỉ mục và bất kỳ thuộc tính nào bạn muốn chiếu vào chỉ mục. Sau đó, DynamoDB thực hiện sao chép các thuộc tính vào chỉ mục, bao gồm các thuộc tính khóa chính được lấy từ bảng. Sau khi thực hiện các tác vụ này, bạn chỉ cần sử dụng truy vấn / quét như thể thực hiện trên bảng.
DynamoDB tự động duy trì tất cả các chỉ số phụ. Trên các hoạt động mục, chẳng hạn như thêm hoặc xóa, nó cập nhật bất kỳ chỉ mục nào trên bảng mục tiêu.
DynamoDB cung cấp hai loại chỉ mục phụ -
Global Secondary Index- Chỉ mục này bao gồm khóa phân vùng và khóa sắp xếp, có thể khác với bảng nguồn. Nó sử dụng nhãn "toàn cầu" do khả năng truy vấn / quét trên chỉ mục để mở rộng tất cả dữ liệu bảng và trên tất cả các phân vùng.
Local Secondary Index- Chỉ mục này chia sẻ một khóa phân vùng với bảng, nhưng sử dụng một khóa sắp xếp khác. Tính chất “cục bộ” của nó là kết quả của tất cả các phân vùng của nó trong phạm vi phân vùng bảng có giá trị khóa phân vùng giống hệt nhau.
Loại chỉ mục tốt nhất để sử dụng tùy thuộc vào nhu cầu ứng dụng. Hãy xem xét sự khác biệt giữa hai loại được trình bày trong bảng sau:
Chất lượng | Chỉ số thứ cấp toàn cầu | Chỉ mục phụ cục bộ |
---|---|---|
Lược đồ chính | Nó sử dụng một khóa chính đơn giản hoặc tổng hợp. | Nó luôn sử dụng một khóa chính tổng hợp. |
Những điểm chính | Khóa phân vùng chỉ mục và khóa sắp xếp có thể bao gồm các thuộc tính chuỗi, số hoặc bảng nhị phân. | Khóa phân vùng của chỉ mục là một thuộc tính được chia sẻ với khóa phân vùng bảng. Khóa sắp xếp có thể là thuộc tính chuỗi, số hoặc bảng nhị phân. |
Giới hạn kích thước cho mỗi giá trị khóa phân vùng | Chúng không có giới hạn về kích thước. | Nó áp đặt giới hạn tối đa 10GB trên tổng kích thước của các mục được lập chỉ mục liên quan đến giá trị khóa phân vùng. |
Hoạt động lập chỉ mục trực tuyến | Bạn có thể sinh ra chúng khi tạo bảng, thêm chúng vào bảng hiện có hoặc xóa những bảng hiện có. | Bạn phải tạo chúng khi tạo bảng, nhưng không thể xóa chúng hoặc thêm chúng vào bảng hiện có. |
Truy vấn | Nó cho phép các truy vấn bao phủ toàn bộ bảng và mọi phân vùng. | Chúng giải quyết các phân vùng đơn lẻ thông qua giá trị khóa phân vùng được cung cấp trong truy vấn. |
Tính nhất quán | Các truy vấn của các chỉ số này chỉ cung cấp tùy chọn nhất quán cuối cùng. | Các truy vấn trong số này cung cấp các tùy chọn cuối cùng nhất quán hoặc nhất quán mạnh mẽ. |
Chi phí thông lượng | Nó bao gồm các cài đặt thông lượng để đọc và ghi. Các truy vấn / quét tiêu thụ dung lượng từ chỉ mục, không phải bảng, điều này cũng áp dụng cho các bản cập nhật ghi bảng. | Truy vấn / quét tiêu tốn dung lượng đọc bảng. Bảng ghi cập nhật các chỉ mục cục bộ và sử dụng các đơn vị dung lượng bảng. |
Phép chiếu | Các truy vấn / quét chỉ có thể yêu cầu các thuộc tính được chiếu vào chỉ mục, không truy xuất các thuộc tính bảng. | Các truy vấn / quét có thể yêu cầu các thuộc tính không được chiếu; hơn nữa, tự động tìm nạp chúng xảy ra. |
Khi tạo nhiều bảng với các chỉ mục phụ, hãy thực hiện tuần tự; nghĩa là tạo một bảng và đợi nó đạt đến trạng thái ACTIVE trước khi tạo một bảng khác và một lần nữa chờ đợi. DynamoDB không cho phép tạo đồng thời.
Mỗi chỉ mục phụ yêu cầu các thông số kỹ thuật nhất định -
Type - Chỉ định cục bộ hoặc toàn cầu.
Name - Nó sử dụng các quy tắc đặt tên giống hệt với các bảng.
Key Schema - Chỉ cho phép loại chuỗi, số hoặc nhị phân cấp cao nhất, với loại chỉ mục xác định các yêu cầu khác.
Attributes for Projection - DynamoDB tự động chiếu chúng và cho phép mọi kiểu dữ liệu.
Throughput - Chỉ định khả năng đọc / ghi cho các chỉ mục phụ toàn cầu.
Giới hạn cho các chỉ mục vẫn là 5 toàn cầu và 5 cục bộ trên mỗi bảng.
Bạn có thể truy cập thông tin chi tiết về các chỉ mục với DescribeTable. Nó trả về tên, kích thước và số lượng mặt hàng.
Note - Các giá trị này cập nhật 6 giờ một lần.
Trong các truy vấn hoặc quét được sử dụng để truy cập dữ liệu chỉ mục, hãy cung cấp tên bảng và chỉ mục, thuộc tính mong muốn cho kết quả và bất kỳ câu lệnh điều kiện nào. DynamoDB cung cấp tùy chọn trả về kết quả theo thứ tự tăng dần hoặc giảm dần.
Note - Việc xóa một bảng cũng xóa tất cả các chỉ mục.