Программное обеспечение, которое моя компания ставит на каждый из мобильных компьютеров наших клиентов, имеет локальную базу данных MySQL.Эти мобильные компьютеры подключены к Интернету через мобильную широкополосную карту.Мы отправляем информацию, которая будет считана в строку и сохранена в локальной базе данных клиента через файлы XML размером от 1 до 600 КБ.(Примечание: мы делаем это, чтобы клиенты по-прежнему имели доступ к данным, когда подключение к Интернету недоступно.)
XML-файлы размером 1-600 КБ хранятся в папке для каждого пользователя на нашем сервере до тех пор, пока они не будут загружены.через веб-сервис .net / C #, который подает файл клиенту, который обращается к веб-сервису со своим токеном.Клиенты могут иметь до 20-40 МБ этих небольших XML-файлов при первом подключении.В обычный день они могут загрузить до нескольких мегабайт этих файлов.Программное обеспечение на мобильном компьютере клиента проверяет файлы в своей папке на сервере каждые 10 секунд с помощью веб-службы.
Новый файл XML создается каждые 15 минут с изменениями, которые необходимо внести в базу данных пользователя.и файл XML не создается, если не было внесено никаких изменений.Самый большой XML-файл (600 КБ) содержит 1000 записей для локальной базы данных пользователя.Каждая запись имеет более 10 столбцов, некоторые из которых содержат более 10 символов.
Проблемы с нашим методом:
Этот метод медленный.(Синхронизация пустой базы данных может занять 1,5 часа).
Сжатие файлов XML отсутствует, поэтому размеры загружаемых файлов больше, чем необходимо.
XML-файлы больше, чем они должны быть, потому что они содержат ненужную информацию.
Мы не отслеживаем, что находится у пользователябазы данных, поэтому пользователи могут потерять синхронизацию.
Он основан на файлах, и это вызывает много операций чтения / записи на жестком диске.
Кто-нибудь может предложить лучший способ сделать это?