Как сделать пейджинг на основе динамических критериев проверки? - PullRequest
0 голосов
/ 15 сентября 2010

Вот случай:

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

например, 50 записей для одной страницы:

  1. Выберите 50 записей из базы данных
  2. 30 записей осталось после проверки

Решение Теперь у меня есть все записи из базы данных, проверка и получение действительного списка записей. Пейджинг основан на этом списке.

Есть ли другое хорошее решение для этого?

1 Ответ

1 голос
/ 15 сентября 2010

В оптимальном случае разбиение на страницы можно разделить на два этапа.На первом этапе согласно запросу выбора набор строк выбирается из базы данных.Все эти строки могут быть отображены.Вместо извлечения реальных строк просто получите список их идентификаторов.Этот большой список обычно хранится в памяти.Второй шаг - пролистывание списка с запросом n -ой страницы m элементов.Тогда только m строки полностью извлекаются из базы данных с использованием их идентификаторов.

Дополнительный шаг вычисления сводит на нет идею разбиения на страницы, в которой есть список идентификаторов всего набора результатов.

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

Это сделает возможным пейджинг.Выполнение первого шага подкачки теперь должно включать предварительно вычисленные результаты проверки и обеспечивать намного более быстрый поиск списка идентификаторов строк.

...