Отображение миллиона записей в JqGrid - PullRequest
1 голос
/ 29 октября 2011

У меня есть сайт, на котором я должен получить миллион записей из базы данных и показать их в JqGrid. Но когда я делаю это, это занимает от 45 до 60 минут, чтобы получить и показать записи.

Я использую JqGrid с базами данных JSP, Hibernate, JPA и MySQL.

Может кто-нибудь сказать мне, как это сделать? Так что время задержки сокращается, а записи загружаются быстрее.

Заранее спасибо

@ UPDATE

Я попытался использовать JSON вместо XML, и время было сокращено до 30 минут. В течение этих 30 минут требуется 16 минут для извлечения данных из базы данных и оставшиеся 14 минут для передачи данных во внешний интерфейс

@ ОБНОВЛЕНИЕ 2

Есть несколько способов, с помощью которых мне удалось сократить время загрузки данных в jqgrid.

Способ 1: в моем запросе было предложение ORDER BY, я удалил его, и время было сокращено с 45-60 минут до 5 минут

Способ 2: удалить / уменьшить количество объединений в запросе.

Способ 3: Вместо использования объекта Hibernate или JPA напрямую получите результат запроса в наборе результатов и используйте этот набор результатов для создания объекта json.

Используя способы 1 и 3, я сократил время загрузки 200000 записей до 1 минуты 32 секунд.

1 Ответ

2 голосов
/ 29 октября 2011

Обычно вам не нужно показывать миллионы записей одновременно. Это было бы безумно и совершенно непрактично. Что вам нужно, это реализовать нумерацию страниц. Разбивка на стороне сервера. Таким образом, вы выбираете только те записи, которые в данный момент можете отображать на экране. 10-30 записей за раз кажется разумным количеством, чтобы показать. Важно выполнять разбиение на страницы на уровне базы данных, чтобы избежать выборки миллионов записей и отображать их очень мало.

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