Если бы Python 3 был актуален, я бы выбрал внешнее решение для kv, так как dumbdbm не радует.
Некоторые чистые опции Python:
semidbm - более быстрая альтернатива dumbdbm, только для стандартной библиотеки Python, pip и go.Тот, который я бы выбрал, если хочу обеспечить мобильность и доступность для пользователей.
PickleDB - использует json для сериализации данных.Только для стандартной библиотеки, я не тестировал ее, но подозреваю, что она медленнее, чем полубаза из-за издержек сериализации.
Petite DB - Мой собственный простой обходной путь с использованием zip-файла Pythonмодуль.Базовое тестирование в книгах, но оно не готово к работе.
Есть также оболочки Python для LMDB , UnQLite и SQLite4 LSM, все из которых поддерживают Windows, хотя привязки SQLite4 не тестировались.
Последние два принадлежат Чарльзу Лайферу, который хорошо разбирается в kv магазинах и заядлым разработчиком Python (см. Peewee ).
AsЧто касается LMDB, я пробовал это некоторое время.Претензий нет, но он использует транзакционную модель, в которой вы не можете использовать его в стиле словаря, как и в других dbm, если вы не создаете подкласс / составляете / отправляете запрос на извлечение и т. Д. Кроме того, он явно не использует сжатие (см. также ), что меня интересовало.
Так что LMDB просто не вполне соответствовал моим конкретным потребностям.Кажется, что он обладает высокой способностью, привязки работали нормально, и их установка не вызывала затруднений (pip работал для меня, не нужно было устанавливать LMDB отдельно или создавать какие-либо неудобства на этот счет).