Thao tác CRUD và Query vs Scan trong DynamoDB
Sử dụng Kho dữ liệu trong AWS
Dunieski Otano
AWS Solutions Architect
Sai lầm đắt giá
Dev dùng Scan để tìm một người dùng
Đọc toàn bộ bảng 1 triệu item
Hóa đơn: $500 cho một lần tra cứu
Dùng Query chỉ tốn $0.01
Thao tác CRUD trong DynamoDB
PutItem
: Tạo hoặc thay thế item
GetItem
: Đọc item theo khóa chính
UpdateItem
: Sửa thuộc tính cụ thể
DeleteItem
: Xóa item
Query
: Lấy theo partition key (hiệu quả)
Scan
: Đọc toàn bộ bảng (tốn kém)
Query vs Scan: khác biệt cốt lõi
Query
: Cần partition key, đọc mục cụ thể
Nhanh, hiệu quả, chi phí thấp
Scan
: Đọc toàn bảng, lọc sau
Chậm, tốn kém, tránh nếu có thể
Quy tắc: Biết khóa thì dùng Query. Nếu không, xem lại thiết kế.
Ngăn chặn race condition bằng biểu thức có điều kiện
Vấn đề: Hai người dùng cập nhật cùng mục cùng lúc
Giải pháp: Biểu thức có điều kiện
Ví dụ: Chỉ cập nhật nếu giá trị hiện tại khớp giá trị mong đợi
Biểu thức UpdateItem: sửa đổi thuộc tính
SET
: Gán giá trị thuộc tính hoặc tạo thuộc tính mới
ADD
: Tăng/giảm số, thêm vào set
REMOVE
: Xóa thuộc tính khỏi item
DELETE
: Gỡ phần tử khỏi set
Phân trang với Query và Scan
Vấn đề
: Tập kết quả lớn vượt giới hạn 1MB
Giải pháp
: Phân trang với LastEvaluatedKey
Limit
: Kiểm soát số item mỗi trang
Lặp đến khi LastEvaluatedKey là null
Ayo berlatih!
Sử dụng Kho dữ liệu trong AWS
Preparing Video For Download...