Я работаю над оптимизацией веб-приложения php / mysql.
Проблема, с которой я сталкиваюсь, заключается в том, что результат функции действительно большой! как 4 МБ.
Я вызываю функцию внутри файла HTML-php:
<table id="example1" class="table table-bordered table-striped table-hover" width="100%">
<thead>
<tr><th>
.
.
.</thead>
<?php
$results = $diosAdminMain->getResults();
echo $results;
?>
</table>
и должен получить результаты из моей БД, а затем представить их с помощью Datatables.
внутри моего файла класса моя функция
<?php
$diosAdminMain = new diosCore;
class diosCore{
public function getResults(){$myhtml='<tbody>';
.
.
.
$resultqry=mysql_query('SELECT * from table');
while($row = mysql_fetch_assoc($resultqry)){
$myhtml.= '<tr>
<td>'.$row['ID'].'</td>
<td>'.$row['PR1'].'</td>
<td>'.$row['PR2'].'</td>
<td>'.$row['THL1'].'</td>
<td>'.$row['THL2'].'</td>
<td>'.$row['NAME1'].'</td>
<td>'.$row['NAME2'].'</td>';
}
$myhtml.='</tbody>';
return $myhtml;
}
}
.
.
?>
Я пытаюсь найти способ сделать эту презентацию быстрее, потому что результаты будут расти больше. Теперь для 1800 строк, требуется почти 20 секунд, чтобы показать на Chrome.
По измерениям, которые я провел без таблиц данных, это всего лишь экономит мне 1-2 секунды (и я не хочу его удалять, так как быстрый поиск потрясающий).
Я также пытался оптимизировать MySQL запросы и логический поток внутри функции, но тот же результат.
Поэтому я экспортировал результат функции в виде обычного текста и обнаружил, что это просто большой результат с размером 4 МБ.
Есть ли способ как-то подавить размер переменной $ myhtml, чтобы ускорить процесс? или как-то иначе я пропустил?
Спасибо
Вы должны рассмотреть возможность отображения результатов страницу за страницей. Невозможно отобразить огромное количество данных на странице без снижения производительности. Отображение 50 или 100 строк на странице будет намного быстрее и будет работать со всеми объемами данных.
Других решений пока нет …