У меня есть большой словарь Python векторов (150 тыс. Векторов, размеры 10 тыс. Каждый) чисел с плавающей точкой, которые нельзя загрузить в память, поэтому я должен использовать один из два способа хранения этого на диске и получение определенных векторов, когда это необходимо. Векторы будут созданы и сохранены один раз, но могут быть прочитаны много (тысяч) раз, поэтому очень важно иметь эффективное чтение. После некоторых тестов с модулем shelve я склонен полагать, что sqlite будет лучшим вариантом для такого рода задач, но прежде чем я начну писать код, я хотел бы услышать еще несколько мнений об этом ... Например, есть ли какие-либо другие варианты, кроме тех двух, о которых я не знаю?Выбор между полкой и sqlite для действительно большого словаря (Python)
Теперь, полагая, что мы согласны с тем, что лучшим вариантом является sqlite, другой вопрос касается точной формы таблицы. Я думаю об использовании мелкозернистой структуры с строками формы vector_key, element_no, value
, чтобы помочь эффективному разбиению на страницы, вместо того, чтобы хранить все 10k элементов вектора в одной записи. Я был бы очень признателен за любые предложения по этой проблеме.
Привет, Я видел перед ссылкой, которую вы предлагаете, проблема в том, что она проверяет только написание - не чтение, которое является моей самой большой заботой. Что касается нормировки, то обе формы, которые я предлагаю выше, уже находятся в нормальной форме, я просто задаюсь вопросом, какая из двух будет наиболее эффективной для чтения. Думаю, я смогу выполнить некоторые тесты на этом. В любом случае, спасибо за ответ :) – dkar