Я согласен с Усамой в том, что вы должны сравнить характеристики, которые вы выбрали после.
Однако я не согласен с тем, что «сложные» данные должны автоматически вести вас к sqlite. Хотя я не видел никаких тестов (и не хотел писать), у меня есть внутренняя реакция (чего бы это ни стоило), которая говорит, что BerkeleyDB будет превосходить почти каждый раз.
Это сказал. Я не думаю, что это то, что я бы использовал, чтобы принять собственное решение. Это восходит к этим функциям. Если все, что мне нужно, это простое хранилище данных, то я бы, вероятно, выбрал sqlite, потому что это будет проще Аналогичным образом, если я хочу иметь возможность произвольно запрашивать мои данные в любом поле или, возможно, однажды сохранить их в «корпоративной» базе данных SQL, я бы, вероятно, выбрал sqlite, потому что будущая миграция будет проще. Однако, если я намереваюсь выйти за рамки простого хранилища данных и наблюдаю за безопасностью транзакций, высоким параллелизмом, высокой доступностью, наличием множества считывателей и писателей и т. Д. и , у меня есть набор из довольно четко определенных «запросов», тогда я, вероятно, хочу BDB.
Обратите внимание, что "сложность" моих данных на самом деле не входит в эти уравнения. Причина проста. BDB может хранить мой объект в его родном сериализованном формате. Sql любого аромата идет с известным несоответствием импеданса, которое, IMO, усложняет мое приложение .
Если вы серьезно рассматриваете BDB, я должен предупредить вас, что вы должны решить, какой тип хранилища вы собираетесь использовать заранее , поскольку различные типы магазинов, которые предлагает BDB, не обязательно совместимы.