2014-03-03 7 views
1

У меня есть большое количество записей, и я показываю только часть, используя разбивку на страницы. Это нормально. Поскольку у меня много страниц, я получаю счет на каждой странице, есть ли способ избежать этого?paginating over большое количество записей

У меня есть redis как хранилище сеансов и база данных postgres.

Я думал, возможно, сохранить счетчик результатов в сеансе (у меня есть только одна страница поиска).

Я уверен, что это часто случается для тех, кто делает это долгое время.

Что можно сделать, чтобы изящно решить эту проблему? (Не получить счет на каждой странице)

ответ

0

Использование sorted_set для хранения записей, вы можете получить записи из определенного индекса с лимитом.

0

Используйте NOTIFY и LISTEN из таблицы Postgres triggers и отдельного процесса на стороне сервера (например, скрипта python).

Храните данные обновленных данных в актуальном состоянии, не забудьте обработать откатные транзакции.

Вы можете использовать redis ZSET (отсортированный набор) для хранения легкоинтегрируемого «индекса». Если у вас есть несколько способов упорядочения ваших данных, вы можете иметь HSET с вашими фактическими данными, которые вы ссылаетесь на свои ZSET по идентификатору. В сценарии redis Lua вы можете получить быстрый результат в одном вызове, который собирает данные HSET с использованием идентификаторов ZSET.

С уважением, TW

Смежные вопросы