powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как ускорить вывод большого количества записей?
15 сообщений из 15, страница 1 из 1
Как ускорить вывод большого количества записей?
    #32262735
Yur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yur
Гость
Извлекаю запросом из MySQL'я большое количество записей - 140 000 (это происходит быстро).

Загоняю в PHP массив, и в цикле вывожу эти строки в HTML-таблицу.
Ждать вывода таблицы приходится очень долго.

Подскажите, пожалуйста - есть ли способ ускорить?
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32262749
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем ты его в массив загоняешь! По одной строчке выводи!
Не делай таблицу (HTML) на все записи! Сделайт таблицу (HTML) на каждую запись!

mahoune
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32262789
Romantik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Сделайт таблицу (HTML) на каждую запись!
Ухх! =)

Вот как у меня сделано:
.....
<table style="table-layout:fixed" width="100%" cellspacing="1" cellpadding="1" border="1">
<col width="1%">
<col width="39%">
<col width="4%">
<col width="4%">
<col width="4%">
<col width="12%">
<col width="3%">
<col width="4%">
<col width="4%">
....
Весь этот <col...> по количеству столбцов в таблице
единственное... фиксированные поля таблицы
А выводит по частям- очень удобно для твоего случая.
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32263143
Yur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yur
Гость
Я для вывда использую следующую процедуру.

function out_from_TekOst ($result) {
#Выводит результат запроса $result из таблицы TekOst
$fields = mysql_num_fields($result);
$rows = mysql_num_rows($result);
print "<br><table cellpadding=0 cellspacing=0>";

for ($i=0;$i<$rows;$i++){
print "<tr>";

$row=mysql_fetch_array($result);
for ($j=0;$j<$fields;$j++){
echo "<td> &nbsp ".$row[$j]." &nbsp </td>";
}
echo "</tr>";
}
print "</table>";
}


Чувствую, что сам себе затрудняю процесс.
Подскажите, как ее можно подправить для возростания эффективности?
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32263198
Romantik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
function out_from_TekOst ($result)
{
print '<br><table cellpadding=0 cellspacing=0>';
while($row=mysql_fetch_array($result))
{
print '<TR><TD>'.$row["id"].'</TD><TD>'.$row["name"].'</td>......</tr>';
}
print '</table>';
}
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32263202
MrGreeN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
function out_from_TekOst ($result) {
print "<br><table cellpadding=0 cellspacing=0>";
while($row=mysql_fetch_assoc($result))
{
echo "<tr>";
foreach($row as $key=>$value)
echo "<td>   ".$row[$key]."   </td>";
echo "</tr>";
}
print "</table>";
}
#это если я правильно понял что $result результат запроса
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32263246
Yur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yur
Гость
Спасибо за помощь, но скорость вывода, тем не менее остается неудовлетворительной - примерно 3500 строк в минуту.

Получается, что наилучший вариант - это когда каждая строка выводится как отдельная таблица. Тогда на экране получается хотя бы построчный вывод. Кривой способ, конечно, но может быть есть его альтернативные варианты?
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32263265
MrGreeN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно включить буферизацию (ob_start())....но всё равно надо ждать пока отработает скрипт...AFAIK попробуй выводить порциями скажем по 50 записей а там кноповка <далее> и ещё 50.....
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32263271
MrGreeN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но чем не устраивает такая скорость ?
По-моему нормально....
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32264227
Ray Adams
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
150 тысяч выводит? Пусть на 1 запись узодит 200 байт, это дает нам гдето 28 мегов на файл! Ну зачем так ужасно то??? Ты просто попробуй открыть HTML такого размера. Такие вещи надо реализовавыть через постраничный вывод и в запросе применять LIMIT
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32264328
Okram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а что если сначала сформировать а потом выводить

function out_from_TekOst ($result) {

$str = '';
$str .= "<br><table cellpadding=0 cellspacing=0>";
while($row=mysql_fetch_assoc($result))
{
$str .= "<tr>";
foreach($row as $key=>$value)
$str .= "<td> ".$row[$key]." </td>";
$str .= "</tr>";
}
$str .= "</table>";

echo $str;
}

помоему должно быстреее работать
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32264356
Gt_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gt_
Гость
у тебя что за бровсером принтер сидит ? или кому нужно сразу 150 тыщ ? :)
грят люди сотню уже струдом воспринимают, хотя алиены могут и поболее...
выводи страницы по 100.
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32264437
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут спрашивали про альтернативный вариант, так его предложил Gt_. В качестве иллюстрации можно взять этот форум. Тут что, все 300 тем выводяться сразу? Нет, они разбиваются на пару страниц. А на каждой тем по 10-50 /не считал, не знаю/. Так ты и поступи. Выведи сначала первые /последние/ 10-50 записей, а потом при следующем запросе от клиента следующие, и так далее...
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32365811
Фотография oz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У некоторых браузеров проблема с выводом больших таблиц (не отобразит, пока не получит всю). Если уж приспичило выводить полный набор информации на одну страницу, то закрывай тэг <table> через (например) 1000 строк, а потом открывай его заново. Если не ошибаюсь, то такая проблема была у ИЕ.

Who is Fuck the Alise?
...
Рейтинг: 0 / 0
Как ускорить вывод большого количества записей?
    #32367312
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если за один раз будешь выводить очень много строк - может не хватить ресурсов GDI для их отображения на экране (это шутка, но в каждой шутке есть доля правды).

SHOGAL
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как ускорить вывод большого количества записей?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]