Tôi có một từ điển Python lớn của vectơ (150k vectơ, kích thước 10k) của số phao không thể nạp vào bộ nhớ, vì vậy tôi phải sử dụng một trong hai phương pháp lưu trữ này trên đĩa và lấy các vectơ cụ thể khi thích hợp. Các vectơ sẽ được tạo và lưu trữ một lần, nhưng có thể được đọc nhiều (hàng nghìn lần) - vì vậy nó thực sự quan trọng để có hiệu quả đọc. Sau một số thử nghiệm với mô-đun gác, tôi có xu hướng tin rằng sqlite sẽ là một lựa chọn tốt hơn cho loại nhiệm vụ này, nhưng trước khi tôi bắt đầu viết mã, tôi muốn nghe thêm một số ý kiến về điều này ... Ví dụ, có tùy chọn ngoại trừ hai lựa chọn mà tôi không biết?Chọn giữa ngăn xếp và sqlite cho từ điển thực sự lớn (Python)
Bây giờ, giả sử chúng tôi đồng ý rằng tùy chọn tốt nhất là sqlite, một câu hỏi khác liên quan đến biểu mẫu chính xác của bảng. Tôi đang nghĩ đến việc sử dụng cấu trúc hạt mịn với các hàng có dạng vector_key, element_no, value
để giúp phân trang hiệu quả, thay vì lưu trữ tất cả các phần tử 10k của một vectơ vào cùng một bản ghi. Tôi thực sự đánh giá cao bất kỳ đề xuất nào về vấn đề này.
Xin chào, tôi đã nhìn thấy trước liên kết bạn đang đề xuất, vấn đề là nó chỉ kiểm tra việc viết - không đọc là mối quan tâm cao nhất của tôi. Đối với bình thường hóa, cả hai hình thức tôi đề nghị ở trên đã ở dạng bình thường, tôi chỉ tự hỏi cái nào trong số hai sẽ là hiệu quả nhất để đọc - tôi đoán tôi có thể thực hiện một số xét nghiệm về điều này. Trong mọi trường hợp, cảm ơn bạn đã trả lời :) – dkar