Я могу придумать пару способов:
Периодически создавайте дамп базы данных MySQL и создавайте новую базу данных SQLite из дампа. Затем вы можете обслуживать базу данных SQLite (базы данных SQLite содержатся в одном файле), чтобы ваш пользовательский клиент мог загрузить и заменить текущую базу данных.
Создайте скрипт diff, который генерирует необходимые операторы для ускорения работы текущей базы данных (различные операторы INSERT, UPDATE и DELETE). Для этого вы должны непрерывно записывать время каждого изменения в вашей базе данных (время создания и обновления для каждой строки, а также вести историю удаленных строк).
Клиент пользователя загрузит файл diff (текстовый файл различных операторов) и применит его к локальной базе данных.
Оба подхода имеют свои плюсы и минусы - выгрузив всю базу данных, вы убедитесь, что все данные пройдут. Это также намного проще, чем создание diff, однако это может увеличить нагрузку на сервер, в зависимости от того, как часто база данных обновляется между дампами.
С другой стороны, различие между базой данных даст вам только данные, которые изменились (надеюсь), но оно более открыто для логических ошибок. Это также повлечет за собой дополнительные издержки на клиенте, так как ему придется создавать / обновлять все необходимые записи вместо простого копирования файла.