2015-08-20 2 views
1

У меня есть user стол & детский стол Post, содержащий сообщения пользователя. Пользователь имеет большое количество сообщений, как и записи в твиттере.Получение данных пользователя с разбивкой на страницы

Мне нужно получить пользовательские сообщения в пользовательском интерфейсе, загрузить больше сообщений, когда пользователь прокручивает страницу так же, как и facebook/twitter. Я использую hibernate как структуру ORM & MySql как db. Я посмотрел в пагинация нашел два основных пути достижения этой

1. setFirstResult(); 
    setMaxResults(); 

2. ScrollableResults 

У меня есть два вопроса

А. Какой способ пагинацией будет более подходящим & эффективным для достижения этой цели? Я читал, что ScrollableResults более эффективен, чем setFirstResult, но он держит соединение открытым для всего процесса разбивки на страницы.

B. Когда страница профиля пользователя загружается, вызов ajax запускается для отображения сообщений пользователя каждый раз, это похоже на определенный контент по умолчанию на странице. Так что мне нужно реализовать кеш второго уровня, чтобы избежать ударов db каждый раз, когда страница загружается?

+0

которые являются размером оценки этих таблиц? –

+0

Не знаете о вашем объеме данных, но посмотрите в любом случае - http://stackoverflow.com/questions/2826319/using-hibernates-scrollableresults-to-slowly-read-90-million-records – Swapnil

+0

@Sasha Таблицы могут содержат 1 миллион строк. – underdog

ответ

0
  • Если набор данных большой, то выбор прокручиваемых результатов будет .
  • Если пользователи получат доступ к вашему приложению с низкой полосой пропускания и в основном будут извлекать только первую или конкретную страницу со страницы 1 на страницу2 , тогда перейдите с помощью setFirstResult() и setMaxResults().
Смежные вопросы