Почему размер файла моей базы данных такой же, как у обычного текстового файла с такими же данными? - PullRequest
2 голосов
/ 02 декабря 2011

В настоящее время мы храним данные для продукта, над которым я работаю, в открытых текстовых файлах ascii в таком формате:

timestamp:2011120211T10:42:23
value:42
error:Foobar error
value:100
error:
timestamp:2011120211T10:43:58
value:0
...

Я попытался импортировать эти точные данные из одного 13 МБ текстового файла в базу данных Sqlite со столбцами (DATETIME, TEXT, TEXT, TEXT, TEXT). Однако, к моему большому удивлению, размер файла базы данных также составлял 13 МБ.

Почему это? Я ожидаю, что база данных будет использовать формат, более эффективный, чем обычный ascii, не так ли?

Ответы [ 4 ]

8 голосов
/ 02 декабря 2011

Это определенно не тот случай.Там много метаданных, и пространство фактически часто тратится впустую во имя эффективности, чтобы обеспечить вставки, индексацию и т. Д.

Единственный раз, когда я ожидаю, что дамп ASCII будет больше, чем база данныхфайлы - это если база данных была в основном двоичными данными, которые должны были бы быть закодированы в BASE64 для вывода в виде ASCII, и если бы не было / минимальных индексов.

0 голосов
/ 02 декабря 2011

База данных не предназначена для большей экономии места, она сделана для экономии времени.Во многих случаях база данных не тратит впустую места, но текст не тратит слишком много места.

Номер записи в базе данных является более эффективным с точки зрения места текстом, но текст выглядит как текст.

И даже есть некоторыеКосмическая выгода, это будет не так много, чтобы легко узнать.Но когда вы используете байт, а не MB, вы узнаете.

0 голосов
/ 02 декабря 2011

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

0 голосов
/ 02 декабря 2011

Базы данных могут поддерживать сжатие данных, но это влияет на производительность.Я не знаком с Sqlite, но думаю, что сжатие данных - это опция, которую вам нужно включить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...