Выполняется скрипт на вывод данных в Yii2. Объем памяти выполнения скрипта 33 мб, страничку грузит на сервере секунд 40. Выгрузил данный проект на локальный сервер OSpanel на стационарный ПК ну и бд на локальный Mysql, страничку грузит за доли секунд.
Все права на сервере Ubuntu на папках стоят 777 и на файлах 755. Объем памяти выделяемый показывает 22 мб.
Вопрос в чем мб причина, когда на мощном сервере так долго обрабатывается запрос, а на моем ПК за доли секунд.
Скорость соединения с сервером 100 Мб локальная сеть.
Все Js скрипты лежат на сервере.
Дмитрий, а что если action который отвечает за вывод данных, разделить на несколько action-ов и данные получать через ajax, для каждого случая. У меня в action статистические запросы на count() через active query.
Переписал запросы через построитель запросов, результат есть, кажется на 10 секунд грузит быстрее.
код основного запроса, я вывожу данные за текущий день
$query= (new \yii\db\Query())
->select(['checking_test.id'])
->from('checking_test')
->leftJoin('napravlenie','checking_test.id_napravlenie=napravlenie.id')
->leftJoin('history','history.id=napravlenie.id_history')
->where(['between','checking_test.date',$date_min, $date_max]);
а далее через clone query(), создаются запросы для подсчета тестов пользователей и под структуру организации...
Пользователей - 200 человек.
AlexSer, конечно, если Вы шлёте 200 запросов, но на самом деле, думаю, их больше.
Откройте debug панель и посмотрите, сколько запросов идёт на самом деле.
И что Вы пытаетесь посчитать?
AlexSer, не обязательно в массивы, так как и они могут не спасти ситуацию.
Надо запросы рефакторить, Ваш двойной цикл вообще не в тему.
Для начала в конфигурации db добавьте 'enableSchemaCache' => true
Нужно разбираться с профайлером. Сначала с помощью Dev Tools в браузере посмотреть как долго приходит сам ответ, и как долго происходит рендеринг странички, выяснить, в php ли дело, или в js.
Если в php - подключать профайлер на стороне сервера, и смотреть логи. Мне лично нравится Blackfire.