Dandelion Datatables работает очень медленно с включенной обработкой на стороне сервера и пагинацией
ОБНОВИТЬ
Если количество строк уменьшается, время ожидания также уменьшается. Если обработка на стороне сервера включена, почему это происходит? У меня есть 90000 строк, но я ожидаю, чтобы вставить более 100 миллионов. Как это изменит производительность программного обеспечения? Способен ли одуванчик справиться с этим?
ВОПРОС
Я использую datalion datatables версии 1.1.0 в моем весеннем приложении mvc. Веб-контейнер tomcat 8. Я использую Java 8.
У меня две основные проблемы
- Dataatable очень медленно. Я отображаю всю таблицу, которая получила 90000 строк из базы данных, и когда я нажимаю кнопку следующей страницы, требуется 1,5 секунды для обновления данных. Серверная обработка и пагинация также включены.
Консоль Chrome показывает следующее:
По гуглу ТТФБ это:
Время, потраченное на ожидание начального ответа, также известное как время до первого байта. Это время отражает задержку прохождения сигнала в оба конца на сервер в дополнение к времени, затраченному на ожидание ответа сервера.
Пинг на сервер, где находится база данных mysql, показывает это:
icmp_seq=1 ttl=64 time=0.206 ms
icmp_seq=2 ttl=64 time=0.232 ms
icmp_seq=3 ttl=64 time=0.188 ms
icmp_seq=4 ttl=64 time=0.192 ms
Для меня это совсем не плохо
- Когда я открываю страницу, где находится таблица, на странице отображается только таблица без темы и без данных. Я должен нажать кнопку обновления страницы, чтобы увидеть данные и тему начальной загрузки.
Пожалуйста, смотрите код ниже для вашей информации
контроллер
@RequestMapping(value = "/results")
public @ResponseBody DatatablesResponse<Results> findAllForDataTables(HttpServletRequest request) {
DatatablesCriterias criterias = DatatablesCriterias.getFromRequest(request);
DataSet<Results> results = this.resultsServiceimpl.findResultsWithDatatablesCriterias(criterias);
return DatatablesResponse.build(results, criterias);
}
Page.jsp
<datatables:table id="myTableId" url="/results" serverSide="true" pageable="true" theme="bootstrap2" cssClass="table table-striped" >
<datatables:column title="ID" property="id" />
<datatables:column title="Start Date" />
<datatables:column title="Stop Date"/>
</datatables:table>
ВАЖНО: Таблица базы данных содержит 31 столбец и 90000 строк, большинство из которых пустые. Тем не менее, дата данных показывает только первые три столбца. Может ли это быть проблемой?
Запрос гибернации при нажатии кнопки "Далее" (3 запроса)
Hibernate: select result0_.id as id1_0_, result0_.start_date as start_date2_0_, result0_.stop_date as as stop_date3_0_,, ....other fields.... from results result0_ order by result0_.id ASC limit ?, ?
Hibernate: select count(result0_.id) as col_0_0_ from results result0_
Hibernate: select result0_.id as id1_0_, result0_.start_date as start_date2_0_, result0_.stop_date as as stop_date3_0_,, ....other fields.... from results result0_
Вы видите здесь что-то не так?
Спасибо за помощь