Я работаю над программой на Python, которая должна хранить постоянную «заданную» структуру данных, содержащую много хеш-значений фиксированного размера (SHA256, но это не важно).Критическими операциями являются insert и lookup .Удалить не нужно для обычной работы.Набор будет расти со временем и, в конечном итоге, не все уместится в памяти.
Я рассмотрел:
- a
set
, сохраненный на диске с использованием pickle
(медленно [несколько секунд] для записи нового файла на диск, в конечном итоге не помещается в память) - база данных SQLite (дополнительная зависимость по умолчанию недоступна)
- настраиваемая дисковая сбалансированная древовидная структура, такая как B-дерево или аналогичное
В идеале должен быть встроенный модуль Python, который предоставляет что-то, что может поддерживать эти операции.Какой хороший вариант здесь?
После того, как я это написал, я нашел Быстрые дисковые хеш-таблицы? , в котором есть несколько хороших идей.Мне нравится, что mmap / bucket принимает ответ.
(Это для перезаписи shaback , если вам интересно.)