2015-02-04 4 views
2

Я ожидал, что использование SQLite уменьшит общий размер используемых данных, но на самом деле я вижу, что представление CSV на 4 МБ меньше, чем база данных SQLite.База данных SQLite больше, чем CSV-файл?

База данных содержит одну таблицу с 400 000 строк. Таблица имеет четыре столбца.

Файл CSV доходит до 19 МБ, а база данных SQLite достигает 23 МБ. Если бы эта таблица была в 10 раз больше, мне было бы лучше разобрать CSV-файл, а не SQLite.

Почему база данных SQLite больше, чем файл CSV?

ответ

7

У вас не должно быть ожиданий меньшего размера файла базы данных SQLite. Целью размещения данных в базе данных/таблиц является доступ к этим данным в соответствии с необходимыми бизнес-правилами/соединениями SQL. Индексы и другие метаданные, такие как определения таблиц, могут легко объяснить дополнительные требования к пространству.

+0

Спасибо за разъяснение, что Моррисон. – jskidd3

+0

Что касается хранения большого количества данных внутри мобильного приложения, какой формат файла вы бы порекомендовали? Я считаю, что JSON не будет хорошим выбором, лучше ли CSV? – jskidd3

+0

@ jskidd3 Ничего плохого в CSV, если модель данных проста. Как всегда, это зависит от данных. Это также было бы проблемой использования, если вы можете взять удар, чтобы загрузить/сохранить данные из/в CSV. Также не забывайте о сжатии как для хранения, так и для передачи. Удачи. –

0

БД SQLite содержит зарезервировано пространства для заголовка, а также содержит табличные схемы и дополнительная информация, как идентификатор приложения, версия, кодирование смотрите ссылку для получения дополнительной информации ниже:

http://www.sqlite.org/fileformat.html

0

Посмотрите на The SQLite Database File Format

вы увидите, откуда возникают накладные расходы.

Целью базы данных является не только хранение необработанных данных. Вы получаете всю реляционную структуру, индексы ... Единственное, что вы, возможно, ожидали, это сжатие файла данных, но это, вероятно, повлияло бы на производительность.