У меня есть запрос с 4000 строк в наборе результатов. Если я выполню этот запрос в браузере запросов, например Heidisql, я получаю все 4000 строк за 0,5 секунды. Если я сделаю print_r($result);
для просмотра внутри своего браузера Internet, я получаю все данные за 30 секунд. Это большая разница! Я попытался с mysqli и PDO, это та же проблема. Это простой запрос от twotable (с левым соединением) с 18 столбцами. У меня есть где в моем запросе и все критерии индексируются У меня есть MySQL 5.1 с PHP 5.3mysql resultset очень медленный в php-выходе
Здесь код (2 индекс!):
$db_handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db_handle->setAttribute(PDO::ATTR_AUTOCOMMIT, false);
$time_start = microtime(true);
$sqlCFf = "
SELECT ....
";
$result_set = $db_handle->query($sqlCFf);
$result = $result_set -> fetchAll();
print_r ($result);
$time_end = microtime(true);
$time_res = $time_end - $time_start;
Здесь результат от EXPLAIN:
1 SIMPLE f range center center 20 51000 Using index condition; Using where; Using MRR
1 SIMPLE g ref compte compte 62 func 1 Using where
, если у кого-то есть идея быстрее вычислить выход в PHP?
THX заранее
первая вещь первая - беги 'объяснить select' вашего запроса и отправить результат в вопрос. –
как вы получаете свой '$ result'? есть ли в вашем результате столбцы 'text' или' blob'? это DB и PHP-код на одной машине? ... если это один и тот же запрос в HeidiSQL и при вызове с PHP, это проблема либо переноса между mySQL и PHP, либо между веб-сервером и вашим браузером, либо обработка данных внутри кода PHP – cypherabe
, когда вы говорите 'print_r ($ result);', вы помещаете этот код внутри цикла? И петля заканчивается через 30 секунд? –