Подтвердить что ты не робот

Есть ли какая-либо база данных плоских файлов nosql так же, как sqlite?

Короткий вопрос: Есть ли какая-либо база данных с плоским файлом nosql, доступная как sqlite?

Объяснение: База данных плоских файлов может открываться в разных процессах для чтения и сохранять один процесс для записи. Я думаю, что он идеально подходит для кеша чтения, если не требуется строгого согласования. Скажем, 1-2 секунды записывают в файл или даже блок памяти, и после этого читатели получают обновленные данные.

Итак, я почти предпочитаю использовать sqlite, так как мой кеш-клиент для чтения на python. Но есть еще одна проблема. Я не люблю переписывать sqls снова в другом месте и строить другую копию моих таблиц данных в sqlite так же, как и в PostgreSql, который использовался как база данных.

так есть ли другой выбор? спасибо!

4b9b3361

Ответ 1

Может быть shelve? Это в основном хранилище ключей, где вы можете хранить объекты python. http://docs.python.org/library/shelve.html

Или, может быть, вы могли бы просто использовать файловую систему?

Ответ 2

BerkeleyDB - широко используемая встроенная база данных, которая была навсегда (она первоначально была получена из библиотеки базы данных, включенной в BSD, отсюда и название) и имеет отличные характеристики производительности для многих случаев использования (и кеширование является часто используемым), но он имеет некоторые существенные ограничения.

Если вы хотите использовать его с Python, вам, вероятно, понадобится внешняя библиотека pybsddb/ bsddb3, а не устаревшая библиотека bsddb, включенная в Python 2.x(и больше не в 3.x).

В настоящее время он принадлежит Oracle, но доступен под лицензией с открытым исходным кодом. Обязательно соблюдайте условия лицензирования - текущие версии - GPLish (и GPL-совместимые), поэтому убедитесь, что они совместимы с тем, что вы планируете делать.

Дополнительная информация:

Ответ 3

Что-то тривиальное, но работоспособное, если вы ищете резервную копию базы данных ключевых значений, используйте маринованный словарь. Используйте cPickle для повышения производительности, если это необходимо.