Выбор хранилища данных - XML или SQLite?
Вопрос такой
Встала задача о выборе хранилища данных
Пишу на C++, вариантов, соответственно, масса
Все они условно делятся на 2 вида
БД либо файлы
БД соответственно делятся на требующие сервер и не требующие
Требующие - это использующие MySql и SQL
Они не подходят по той причине, что требуют установки сервера
Что остаётся?
Вроде бы, наилучший вариант - использовать SQLite
Что касается файлов
Тут вариант - либо бинарные, либо XML
Так вот, какие на ваш взгляд есть плюсы и минусы у данных вариантов?
Буду благодарен за любой ответ.
SQLite хороший вариант. Что касается файлов, то вопрос в требуемой производительности. Если это не важно или чтение/запись файлов происходит не часто, то XML.
По идее, чтение запись будут происходить достаточно часто
Цитата: Lindemann66
Так вот, какие на ваш взгляд есть плюсы и минусы у данных вариантов?
Про XML могу сказать следующее - если данных много и они небольшие, то из-за тегов XML может случиться так, что теги XML будут отжирать больше памяти, чем сами хранимые данные(критично, когда данных много).
Допустим, количество вставок в секунду
Проблема XML, как и любого другого текстового формата -- в необходимости полной перезаписи файла при изменении данных. Для быстрой работы нужно также держать кэш в памяти -- явно или неявно -- в виде структур MSXML.
Firebird ведь тоже может идти в версии без сервера (embedded)
Firebird тоже православен.
спасибо :)
Можно ещё рассмотреть BerkeleyDB