Tôi đang tìm cách lưu trữ một danh sách được sắp xếp bên trong cơ sở dữ liệu. Tôi muốn thực hiện các hoạt động sau đây một cách hiệu quả.
- Chèn (x) - Chèn bản ghi x vào bảng
- Xóa (x) - Xóa bản ghi x khỏi bảng
- Trước (x, n) - Trả về các bản ghi 'n' trước bản ghi x trong danh sách được sắp xếp.
- Sau (x, n) - Trả về các bản ghi 'n' thành công bản ghi x trong danh sách được sắp xếp.
- Đầu tiên (n) - Trả về các bản ghi 'n' đầu tiên từ danh sách được sắp xếp.
- Lần cuối (n) - Trả về các bản ghi 'n' cuối cùng từ danh sách đã sắp xếp.
- So sánh (x, y) - Cho hai bản ghi x và y từ bảng, tìm nếu x> y.
Phương pháp đơn giản tôi có thể nghĩ đến là lưu trữ một loại thuộc tính 'thứ hạng' trong bảng và truy vấn bằng cách sắp xếp trên thuộc tính đó. Nhưng trong phương pháp này, việc chèn / sửa đổi một bản ghi với thứ hạng sẽ trở thành một hoạt động tốn kém. Có một phương pháp tốt hơn?
Cụ thể, tôi đang tìm cách triển khai bảng bằng SimpleDB của Amazon. Nhưng một câu trả lời chung cho cơ sở dữ liệu quan hệ cũng sẽ hữu ích.
Cập nhật hồ sơ tải:
Vì tôi đang lập kế hoạch này cho một ứng dụng web, nó phụ thuộc vào số lượng người dùng sử dụng ứng dụng đó.
Nếu có 100k người dùng hoạt động (siêu lạc quan: P), thì ước tính rất gần đúng của tôi mỗi ngày sẽ là
500k chọn, 100k chèn và xóa, cập nhật 500k
Tôi hy vọng bảng sẽ tăng tổng cộng lên tới 500k.
Tôi đang tìm cách tối ưu hóa các bản cập nhật, chèn và các hoạt động So sánh. Thứ hạng của các vật phẩm sẽ liên tục thay đổi và tôi cần cập nhật bảng.