Таможенная нумерация страниц в датированных данных - PullRequest
0 голосов
/ 05 марта 2019

У меня есть веб-приложение, в котором я получаю данные из своей базы данных и показываю их в виде данных.Я столкнулся с проблемой, связанной с этим, так как данные, которые я получаю, имеют слишком много строк (200 000).Поэтому, когда я запрашиваю что-то вроде select * from table_name;, мое приложение застревает.

Есть ли способ решить эту проблему с помощью JavaScript?

Я пробовал нумерацию страниц, но не могу понять, как мне это сделать, так какdatatable создает нумерацию страниц для уже обработанных данных?

Есть ли способ, с помощью которого я могу выполнить свой запрос через пагинацию в бэкэнде?

Ответы [ 3 ]

0 голосов
/ 05 марта 2019

Вы можете использовать ограничения LIMIT и OFFSET для разбивки на страницы в MySQL.Я понимаю, что за один раз данные 2 lacs замедляют производительность.Но, как вы упоминаете, вы должны использовать JS для этого.Поэтому дайте понять, что если вы хотите js в качестве внешнего интерфейса, то это вам не поможет.Но, как вы упоминаете, что у вас есть веб-приложение, если это приложение на Node(as server), то я могу предложить вам способ, который может вам очень помочь.

используйте 2 переменные с именами var_pageNo и var_limit.Теперь используйте запрос строки mysql как

select * form <tbl_name> LIMIT var_limit OFFSET (var_pageNo * var_limit);

Делать код в соответствии с этим запросом.Замените переменную значениями вашего желания.Это ускорит вашу производительность и получит данные в соответствии с указанным вами пределом.

надеюсь, что это поможет.

0 голосов
/ 05 марта 2019

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

При условии, что вы отображаете 25 записей на одной странице.

Backend:

  1. Получить общее количество записей, используя запрос COUNT.
  2. выберите * из имени таблицы LIMIT 25 OFFSET $ {req.query.pageNumber * 25} для запросаограниченное количество записей на основе номера страницы;

Внешний интерфейс:

  1. Вместо использования данных можно отображать данные в таблице HTML самостоятельно.
  2. Определение кнопок для следующей и предыдущей страниц.
  3. Определение глобальной переменной в файле controller / js для pageNumber.Увеличивайте pageNumber на 1 при нажатии кнопки следующей страницы и уменьшайте на 1. при нажатии кнопки prev.
  4. используйте результат запроса COUNT, чтобы установить верхний предел для переменной pageNumber. (Если существует 200 записей, ограничение будет равно 200/25=8).

Так что, в основном, выберите * из имени_таблицы LIMIT 25 OFFSET $ {req.query.pageNumber * 25} ограничит число записей 25. Когда req.query.pageNumber =1, он сместит первые 25 записей и отправит следующие 25 записей.аналогично, если req.query.pageNumber = 2, он сместит первые 2 * 25 записей и отправит 51-75 записей.

0 голосов
/ 05 марта 2019

Существует два способа обработки.

  1. Первый способ - обработка подкачки на стороне клиента Получение всех данных из базы данных и применение настраиваемой подкачки.
  2. Второй способ - обработка подкачки на стороне сервера Каждый раз, когда вы хотите позвонить в базу данных и получить записи в соответствии с размером страницы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...