Выбор правильного шаблона для фильтрации больших массивов - Rest vs Local Array - PullRequest
0 голосов
/ 20 ноября 2018

Что является лучшим подходом для приложения, которое нацелено на фильтрацию данных, таких как записи 5000+, с сохранением скорости отклика в фокусе?

A) Фильтрация массивов локальной памяти B) Запрос к базе данных http apiзапросы вызовов

Для моего приложения я использую angularjs, php и SQLite3.Прямо сейчас я загружаю все записи из базы данных slite в свою таблицу и затем фильтрую это поле по поиску.Все отлично работает, но когда я превышаю 3000 записей, я замечаю некоторое замедление.Ограничивая поиск по двум полям, я получаю лучшую производительность.Я сомневаюсь, что при смене модели и запросе базы данных я получаю лучшую производительность или нет.

A) Преимущества локального массива - я могу использовать метод JavaScript Array map () - низкое потребление данных bandwidht - я могу видеть всезаписи в таблице перед фильтром - я могу работать, после загрузки данных, в автономном режиме.

A) Недостатки локального массива - снижение производительности по сравнению с записью 2000.

Так что вы можете помочь мне оценить преимуществаи отключение, если я сделаю http api call для любого запроса действия фильтра, сохраняя в фокусе производительность?

Спасибо

1 Ответ

0 голосов
/ 20 ноября 2018

Я не могу рассказать о кешировании в PHP, но для конца AngularJS есть подход, которым вы можете следовать:

  1. Когда пользователь ищет в первый раз, извлеките результат (ы)из базы данных.
  2. Сделайте 2 копии данных: одна будет представлена ​​непосредственно пользователю, другая может быть сохранена в локальном json-формате с использованием пары ключ-значение.3. В следующий раз, когда пользователь что-то ищет, сначала посмотрите на локальный JSON-файл.Если данные присутствуют локально, нет необходимости в запросе БД, в противном случае выполните запрос БД и повторите шаг 2.

Идея состоит в том, чтобы не заставлять пользователя ждать каждого поиска, вы не можете просто вызвать всеБолее 5000 записей одновременно и хранятся локально, и вы определенно не можете делать запросы БД каждый раз, так как RDMS с таким большим количеством записей просто имеет проблемы с низкой производительностью.Так что, мне кажется, это лучше всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...