
    Новые сообщения [новые:0]
  
  Дайджест 
  
  Горячие темы
    Избранное [новые:0]
  
Форумы 
 
Пользователи 
Статистика 
Статистика нагрузки 
    Мод. лог 
  
  Поиск 
| 
 | 
| 11.03.2018, 06:58 | |||
|---|---|---|---|
| 
 | |||
| Большой объём файла БД SQLite при переносе данных | |||
| #18+ Здравствуйте! Моё однопользовательское приложение использует БД Firebird. Сейчас пробую переписать его для использования в Андроид, поэтому решил все данные перенести из Firebird в SQLite. Столкнулся с таким обстоятельством: файл БД SQLite получается гораздо больше аналогичного Firebird. Не в разы, но очень ощутимо больше, и это мне не нравится... Подскажите, это особенность SQLite, или существуют какие то настройки данной БД, какие то приёмы, чтобы уменьшить размер файла БД? Кнопочку VACUUM - нажимал... ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
|  | 
| 11.03.2018, 07:12 | |||
|---|---|---|---|
| 
 | |||
| Большой объём файла БД SQLite при переносе данных | |||
| #18+ Для управления файлом SQLite использую программу SQLite Expert. Кнопочка Vacuum - это в ней... Может быть на такое увеличение размера БД повлияла одна из таблиц, состоящая из 130 тысяч записей, в которой есть текстовое поле, где большинство строк имеют длину до 300 символов, а несколько из содержат до 5000. И SQLite выделила много места под этот столбец?.. Или потому что у меня кодировка в SQLite UTF-8, а в Firebird Win1251? Может быть на них уходит разное количество байт? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
|  | 
| 11.03.2018, 16:35 | |||
|---|---|---|---|
| 
 | |||
| Большой объём файла БД SQLite при переносе данных | |||
| #18+ Думаю всё-таки всё дело в кодировке... База на Firebird использует WIN1251, у которой на каждый символ русского языка уходит по 1 байту. А SQLite использует кодировку UTF-8, в которой на буквы русского языка уходит по 2 байта. Наверное из-за этого так подскочил размер файла БД... ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
|  | 
| 13.03.2018, 13:56 | |||
|---|---|---|---|
| Большой объём файла БД SQLite при переносе данных | |||
| #18+ Anthony68, скорее да, чем нет. Насколько я помню, пустые длинные поля SQLite не хранит, а хранит минимум. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
|  | 
| 13.03.2018, 14:02 | |||
|---|---|---|---|
| Большой объём файла БД SQLite при переносе данных | |||
| #18+ и кодировку для хранения текста, скорее всего, можно задать https://habrahabr.ru/post/150543/ БД SQLite может в базе хранить текст (строковые значения) в формате UTF-8 или в формате UTF-16. При этом порядок байт в 16-битных символах UTF-16 может быть как little-endian, так и big-endian. То есть в реальности есть три разных формата БД SQLite: UTF-8, UTF-16le, UTF-16be. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
|  | 
| 
 | 

| start [/forum/topic.php?fid=54&tablet=1&tid=2008461]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 15ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 38ms | 
| get topic data: | 12ms | 
| get forum data: | 3ms | 
| get page messages: | 44ms | 
| get tp. blocked users: | 2ms | 
| others: | 229ms | 
| total: | 358ms | 

 
    | 0 / 0 | 
