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

347
alim1990

РЕДАКТИРОВАТЬ

Я выбрал только одно поле из всех запросов, размер файла уменьшился до 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 в httpclientслужбу angular 6, чтобы отобразить ее в таблице угловых материалов:

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функции и все же дать тот же размер еще больше (17 МБ).

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

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

0

0 ответов на вопрос