Основной недостаток: вам нужен исполняемый файл sqlite3
с поддержкой архивов, когда вам нужно восстановить ваши данные. В зависимости от обстоятельств, у вас может не быть под рукой, но вы с большей вероятностью найдете работающий gzip
, tar
et al.
Вот почему я особенно педантичен по этому поводу:
- Системы MacOS версии
sqlite3
как правило, находятся в пределах досягаемости от последних версий, но Apple лишь время от времени обновляет свое программное обеспечение, и многие пользователи Mac могут запускать устаревшие ОС по разным причинам. Следовательно, система MacOS sqlite3
до Mojave не поддерживает архивирование, поэтому для переносимости вам определенно нужно будет установить и обновить пакет Homebrew sqlite3.
- Homebrew в Linux по умолчанию устанавливает бутилированный (то есть предварительно скомпилированный двоичный файл) sqlite v3.26, который каким-то образом не поддерживает архивирование. Мне пришлось
brew install --build-from-source sqlite3
чтобы это исправить.
Это всего лишь два примера, с которыми у меня есть личный опыт. Платформы, на которых вы планируете работать, могут иметь аналогичные ошибки. Сравните это с "это работает везде" gzip
/tar
/etc.
Так что, если вы хотите использовать формат sqlar всерьез, внимательно рассмотрите все обстоятельства и условия, в которых вы будете это делать. Например, на аварийном диске может отсутствовать архивация sqlite3
, и вы действительно не хотите создавать sqlite с нуля во время аварийного восстановления.
Помимо доступности sqlite3
, вам также необходимо рассмотреть вопрос о размерах файлов.
Поскольку sqlar - это в основном БД SQLite, он наследует все ограничения этого формата файлов. В частности, данные каждого файла хранятся в виде большого двоичного объекта, максимальный размер которого по умолчанию составляет 1 миллиард байтов. Кроме того, обработка запросов SQLite приводит к тому, что каждая строка обрабатывается как один большой двоичный объект, что еще больше снижает ограничение на размер файла.
Сравните это с ZIP (2 32 для "классического ZIP", 2 64 для ZIP64) или GNU tar (без ограничений), и у вас может быть еще одна причина выбрать традиционный маршрут.