PHP MySQL большой набор данных с большим количеством времени для отображения в угловом компоненте и небольшого CSV-файла, экспортированного из базы данных - PullRequest
0 голосов
/ 06 ноября 2018

EDIT

Я выбрал только одно поле из всех запросов, размер файла уменьшился до 433 КБ, но время отображения составило 13 секунд.

Конец редактирования

У меня следующий запрос:

SELECT *,  DATE(h.hh_date_added) as dateOnly FROM unit u 
                    INNER JOIN househ h
                    ON u.unit_id=h.unit_id
                    LEFT JOIN location l
                    ON l.location_id_auto=u.location_id_auto
                    LEFT JOIN user us
                    ON us.user_id = h.user_id
                    ORDER BY dateOnly DESC

Когда он запускается на phpmyadmin, он выполняется в течение 0,233 секунды, возвращая строку 11331 с почти 20 полями.

Если я экспортирую данные в csv или excel, их размер будет 830 КБ.

При возврате этого результата с помощью php в службу угловых 6 httpclient для отображения его в таблице угловых материалов:

getDataByType(){
    this.showSpinner=true;
    this.auth.getDataByType(this.dataType).subscribe(
      (data)=>
      {
        console.log(data)
        this.dataSource = new MatTableDataSource(Object.values(data));
        this.dataSource.paginator = this.paginator;
        this.dataSource.sort=this.sort;
        this.showSpinner=false;
      },
      (error)=>
      {
        console.log("Error: "+error)
      }
    )


  }

Данные, которые будут отображаться в таблице и показываться пользователю, могут занять более 30 секунд (как отображается во время загрузки контента).

Время было отображено на вкладке времени на вкладке сети Google Chrome с размером файла 15.9 Mb.

Почему размер файла такой огромный?

  1. Это проблема из таблицы материалов, которая потребовала слишком много времени для отображения данных после их получения:

Я так не думаю, так как тестирование на postman вернуло один и тот же размер файла с разным временем 20 секунд.

  1. или из-за ошибки запроса, которая возвращает огромный набор данных:

, что, на мой взгляд, не так, как на сервере, результат был возвращен в течение менее чем секунды с файлом Excel размером менее 1 МБ.

  1. Это потому, что я возвращаю их в виде данных, закодированных в json, а chrome требуется некоторое время для их обработки?

Нет, потому что я пытаюсь отправить данные в массиве без использования функции json_encode и все еще давать тот же размер (17Mb).

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

Пожалуйста, обратитесь к моему предыдущему вопросу в стеке, чтобы проверить сценарии подключения к локальному серверу.

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