SharkORM процесс синхронизации больших данных

Моя компания разрабатывает приложение для приема заказов iOS, которое должно синхронизировать данные с облачным API. Данные являются реляционными, и мы изо всех сил пытаемся найти решение, которое использует ORM, способный быстро синхронизироваться. Это занимает слишком много времени, чтобы просмотреть циклы загрузки данных, создать / извлечь модели и построить отношения. Одна запись заказа может иметь отношения к строке заказа, клиенту, отгрузке, продукту и другим объектам, и процесс синхронизации должен извлекать / создавать все эти связанные объекты для каждой новой / обновленной записи, и это очень медленно.

У нас уже есть Java-версия приложения, которая использует ActiveJDBC в качестве ORM. Мы можем вставлять данные непосредственно в базовую базу данных SQLite, а ActiveJDBC способен использовать идентификаторы и внешние ключи, которые уже существуют в нашей базе данных API. Это позволяет нам вставлять загруженные данные намного быстрее, чем создавать объекты модели.

Насколько я могу судить, SharkORM не позволяет нам использовать альтернативный столбец базы данных для идентификаторов и внешних ключей. Есть ли способ сделать что-то подобное, используя SharkORM (или с другим iOS ORM)?

Спасибо за любую помощь.

1 ответ

К сожалению, столбец Id в настоящее время исправлен и не может быть изменен.

Вы можете использовать необработанную функцию execute для предоставления блока SQL, но для этого потребуется немало усилий.

Чтобы сделать вещи быстрее, вы можете попробовать это:

  1. Пакетные транзакции
  2. Отключить модель событий (делает вещи намного.... намного быстрее)
  3. Временно удалите индексы
  4. Выполнить прагму, отключив синхронные функции (очень быстро, но потенциально опасно)

Кроме того, вы можете просто проигнорировать столбец Id и создать свой собственный и проиндексировать его; разница в том, как он будет работать, очень мала.

Другие вопросы по тегам