Tôi đang tìm giải pháp nhanh (như hiệu suất lớn, không sửa nhanh) để lưu trữ và truy xuất hàng chục triệu đối tượng nhị phân nhỏ (khoảng 1k). Mỗi đối tượng phải có một ID duy nhất để truy xuất (tốt hơn là GUID hoặc SHA). Yêu cầu bổ sung là nó có thể sử dụng được từ .NET và không yêu cầu cài đặt phần mềm bổ sung.Cách nhanh nhất để truy xuất/lưu trữ hàng triệu đối tượng nhị phân nhỏ
Hiện tại, tôi đang sử dụng cơ sở dữ liệu SQLite với một bảng cho công việc này, nhưng tôi muốn loại bỏ chi phí xử lý các lệnh SQL đơn giản như SELECT data FROM store WHERE id = id.
Tôi cũng đã kiểm tra tính bền vững của hệ thống tệp trực tiếp dưới NTFS, nhưng hiệu suất giảm rất nhanh ngay khi nó đạt đến nửa triệu đối tượng.
P.S. Bằng cách này, các đối tượng không bao giờ cần phải bị xóa, và tỷ lệ chèn là rất, rất thấp. Trong thực tế, mỗi khi một đối tượng thay đổi một phiên bản mới được lưu trữ và phiên bản trước đó vẫn còn. Đây thực sự là một yêu cầu để hỗ trợ du hành thời gian.
Chỉ cần thêm một số thông tin bổ sung cho chủ đề này:
Để Blob hoặc Không Để BLOB: Lưu trữ đối tượng lớn trong một cơ sở dữ liệu hoặc một hệ thống tập tin http://arxiv.org/abs/cs.DB/0701168
Dường như các thử nghiệm sơ bộ của tôi (trong nUnit) đề xuất một đối tượng tích lũy thời gian ReadWrite Vector [10, 100, 1000] .3 giây trong SQLite và 3.01s sử dụng NTFS, cho đối tượng 50byte. :-( –
Nhưng đọc 10k đối tượng trong 2,8 vẫn còn quá chậm đối với tôi :-( –
Tôi sẽ cần một cái gì đó giống như 100k trong khoảng 1s –