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