powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Большой объём файла БД SQLite при переносе данных
5 сообщений из 5, страница 1 из 1
Большой объём файла БД SQLite при переносе данных
    #39612938
Anthony68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Моё однопользовательское приложение использует БД Firebird.
Сейчас пробую переписать его для использования в Андроид, поэтому решил
все данные перенести из Firebird в SQLite.

Столкнулся с таким обстоятельством: файл БД SQLite получается гораздо больше
аналогичного Firebird. Не в разы, но очень ощутимо больше, и это мне не нравится...

Подскажите, это особенность SQLite, или существуют какие то настройки данной БД,
какие то приёмы, чтобы уменьшить размер файла БД?
Кнопочку VACUUM - нажимал...
...
Рейтинг: 0 / 0
Большой объём файла БД SQLite при переносе данных
    #39612940
Anthony68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для управления файлом SQLite использую программу SQLite Expert.
Кнопочка Vacuum - это в ней...

Может быть на такое увеличение размера БД повлияла одна из таблиц,
состоящая из 130 тысяч записей, в которой есть текстовое поле, где
большинство строк имеют длину до 300 символов, а несколько из содержат
до 5000. И SQLite выделила много места под этот столбец?..

Или потому что у меня кодировка в SQLite UTF-8, а в Firebird Win1251?
Может быть на них уходит разное количество байт?
...
Рейтинг: 0 / 0
Большой объём файла БД SQLite при переносе данных
    #39613013
Anthony68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю всё-таки всё дело в кодировке...
База на Firebird использует WIN1251, у которой на каждый символ русского языка
уходит по 1 байту. А SQLite использует кодировку UTF-8, в которой на буквы
русского языка уходит по 2 байта.
Наверное из-за этого так подскочил размер файла БД...
...
Рейтинг: 0 / 0
Большой объём файла БД SQLite при переносе данных
    #39614108
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anthony68,
скорее да, чем нет.

Насколько я помню, пустые длинные поля SQLite не хранит, а хранит минимум.
...
Рейтинг: 0 / 0
Большой объём файла БД SQLite при переносе данных
    #39614111
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и кодировку для хранения текста, скорее всего, можно задать
https://habrahabr.ru/post/150543/ БД SQLite может в базе хранить текст (строковые значения) в формате UTF-8 или в формате UTF-16. При этом порядок байт в 16-битных символах UTF-16 может быть как little-endian, так и big-endian.

То есть в реальности есть три разных формата БД SQLite: UTF-8, UTF-16le, UTF-16be.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Большой объём файла БД SQLite при переносе данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]