Добрый вечер,
Я вижу кое-что, с чем я был бы очень признателен за помощь. У нас есть таблица данных, которая получает вывод json из скрипта php. Этот скрипт php в основном является нашим вызовом php для извлечения данных из базы данных и загрузки их в массив json. Оператор sql - это очень длинный запрос, но его выполнение занимает около 1 секунды, когда я запускаю его в базе данных с помощью SQLYog. Но на днях я заметил, что PHP-версия того же запроса занимает более 15 секунд. Я знаю, что это 15 секунд, потому что я использовал следующий код, и результаты таковы, что эта выборка занимает около 15 секунд. Обратите внимание, что я упростил заявку для этого разговора. Как вы заметите, я пробовал 3 разных метода "получить" эти данные.
Любая помощь с этим будет оценена. Еще одно замечание: я использую php 5.6 и mysql 5.7 на Ubuntu.
$OutputArray['data'] = $result->fetch_all(MYSQLI_ASSOC);
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
$OutputArray['data'] = $row;
}
while ($row = $result->fetch_row_assoc)
{
$OutputArray['data'] = $row;
}
$BeginTime = microtime(true);
$EndTime1 = microtime(true);
$diff1 = $EndTime1 - $BeginTime;
$Seconds1 = intval($diff1);
$MicroSeconds1 = $diff1 - $Seconds1;
$GetDataQuery = "SELECT Claims.* FROM tbl_claims Claims";
if (!$result = $mysqli->query($GetDataQuery))
{
$ErrorCount = $ErrorCount + 1;
$Error .= "Filename: " . $_SERVER['SCRIPT_NAME'];
}
else
{
$OutputArray = array();
// while ($row = $result->fetch_array(MYSQLI_ASSOC))
// {
// $OutputArray['data'] = $row;
// }
// while ($row = $result->fetch_row_assoc)
// {
// $OutputArray['data'] = $row;
// }
$OutputArray['data'] = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($OutputArray);
}
Если вы все еще используете PHP 5, я настоятельно рекомендую выполнить обновление как можно скорее. Эта версия больше не поддерживается. Позвольте Расмусу Лердорфу объяснить вам это
Ребята, спасибо за внимание. Извините, я не включил фактический запрос. Там есть некоторые конфиденциальные данные, которые я не мог включить, не повторяя запрос, чтобы скрыть конфиденциальные данные. Но я действительно хочу поблагодарить вас за то, что заставили меня снова подумать об этом сегодня утром. Я решил проблему.






Извините, но я только что понял проблему. У меня была включена функция «Ограничить количество строк» в sqlyog, и оказалось, что запрос экспоненциально медленнее, когда строки идут от 1000 до 4000 КБ. Но, по крайней мере, я знаю, что PHP и база данных соответствуют друг другу. Спасибо.
На данный момент невозможно ответить на этот вопрос, потому что в нем есть какой-то случайный набросок кода, который буквально ничего не измеряет. Предоставьте код действительный и результат действительный. особенно количество возвращаемых строк