Dandelion Datatables работает очень медленно с включенной обработкой на стороне сервера и пагинацией

ОБНОВИТЬ

Если количество строк уменьшается, время ожидания также уменьшается. Если обработка на стороне сервера включена, почему это происходит? У меня есть 90000 строк, но я ожидаю, чтобы вставить более 100 миллионов. Как это изменит производительность программного обеспечения? Способен ли одуванчик справиться с этим?

ВОПРОС

Я использую datalion datatables версии 1.1.0 в моем весеннем приложении mvc. Веб-контейнер tomcat 8. Я использую Java 8.

У меня две основные проблемы

  1. Dataatable очень медленно. Я отображаю всю таблицу, которая получила 90000 строк из базы данных, и когда я нажимаю кнопку следующей страницы, требуется 1,5 секунды для обновления данных. Серверная обработка и пагинация также включены.

Консоль Chrome показывает следующее:

TTFB

По гуглу ТТФБ это:

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

Пинг на сервер, где находится база данных 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

Для меня это совсем не плохо

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

Пожалуйста, смотрите код ниже для вашей информации

контроллер

@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_

Вы видите здесь что-то не так?

Спасибо за помощь

0 ответов

Другие вопросы по тегам