ilyubayev
@ilyubayev
Software Engineer

Как реализовать загрузку БД с сервера в мобильном приложении?

Имеется БД(MySQL) на сервере с данными.
Также имеем клиентское приложение на Android/iOS с SQLite, которое должно скачивать данные с сервера и отображать их. Похожий функционал виден в 2GIS, там скачивается база с сервера и потом развертывается в приложении.
Мне интересна сама технология такого развертывания БД на клиентской стороне - как это происходит?
1) Скачивается дамп бд и потом он уже используется напрямую клиентом.
2) Клиент получаем БД в виде JSON. После он парсится и вставляется уже в готовую структуру БД клиента? Что делать, если БД будет большой? Ведь тогда пострадает скорость.
Данные достаточно объемные + хочется, чтобы клиент был больше оффлайновым, поэтому обмен информацией с сервером через REST API не целесообразен.

Какие есть идеи? Может быть есть готовые решения или у вас был такой опыт?
  • Вопрос задан
  • 282 просмотра
Решения вопроса 2
bingo347
@bingo347
Crazy on performance...
1. настраиваем логирование изменений в серверной БД
2. при первом коннекте получаем полную копию (кроме лога) серверной БД
3. при обновлениях дергаем логи, которые моложе времени последнего обновления и по ним реплицируем локальную БД
4. вешаем на сервере крон-скрипт подчищающий логи, которые старше определенного времени (например, старше чем 3 месяца, зависит от дискового пространства сервера)
5. если на клиенте последнее обновление было давно (более 3х месяцев назад), то придется снова выкачать базу целиком, ибо лог в этом случае не полный
Ответ написан
Комментировать
ilyubayev
@ilyubayev Автор вопроса
Software Engineer
Комментировать
Пригласить эксперта
Ответы на вопрос 1
gadfi
@gadfi
https://gamega.org
если обновления не частые то можно просто выкачивать готовую sqlite базу с севрера, или хотя бы делать это первый раз а дальше по rest api
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект