У меня большой список слов (более 2 миллионов) в файле CSV (размер около 35 МБ).Я хотел импортировать файл CSV в sqlite3 с индексом (первичный ключ).Поэтому я импортировал его с помощью инструмента командной строки sqlite.Создана БД, а размер файла .sqlite вырос до более чем 120 МБ!(50% из-за индекса первичного ключа)
И здесь возникает проблема: если я добавлю этот файл .sqlite размером 120 МБ к ресурсам даже после сжатия в файл .ipa, он будет иметь размер> 60 МБ.И я хотел бы, чтобы он был меньше 30 МБ (из-за ограничения через E / 3G).
Также из-за размера, который я не могу импортировать (файл zlp sqlite) с помощью веб-службы (45 МБ *)1000 скачиваний = 45 ГБ! Это предел моего сервера на пол года).
Поэтому я подумал, что могу сделать что-то вроде этого:
- сжать файл CSV со словами в ZIP и затем файлбудет иметь только 7 МБ файла.
- добавить ZIP-файл к ресурсам.
- в приложении я могу разархивировать файл и импортировать данные из разархивированного CSV-файла в sqlite.
Но я не знаю, как это сделать.Я пытался сделать это:
sqlite3_exec(sqlite3_database, ".import mydata.csv mytable", callback, 0, &errMsg);
но это не работает.Причина сбоя заключается в том, что «.import» является частью интерфейса командной строки, а не в C API.
Поэтому мне нужно знать, как импортировать его (разархивированный CSV-файл) в файл SQLite внутри приложения (не во время разработки с использованием командной строки).