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

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

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

mahoune
...
Рейтинг: 0 / 0
11.09.2003, 17:31
    #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
12.09.2003, 08:53
    #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
12.09.2003, 09:35
    #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
12.09.2003, 09:39
    #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
12.09.2003, 10:20
    #32263246
Yur
Yur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускорить вывод большого количества записей?
Спасибо за помощь, но скорость вывода, тем не менее остается неудовлетворительной - примерно 3500 строк в минуту.

Получается, что наилучший вариант - это когда каждая строка выводится как отдельная таблица. Тогда на экране получается хотя бы построчный вывод. Кривой способ, конечно, но может быть есть его альтернативные варианты?
...
Рейтинг: 0 / 0
12.09.2003, 10:30
    #32263265
MrGreeN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускорить вывод большого количества записей?
Можно включить буферизацию (ob_start())....но всё равно надо ждать пока отработает скрипт...AFAIK попробуй выводить порциями скажем по 50 записей а там кноповка <далее> и ещё 50.....
...
Рейтинг: 0 / 0
12.09.2003, 10:34
    #32263271
MrGreeN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускорить вывод большого количества записей?
Но чем не устраивает такая скорость ?
По-моему нормально....
...
Рейтинг: 0 / 0
13.09.2003, 00:31
    #32264227
Ray Adams
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускорить вывод большого количества записей?
150 тысяч выводит? Пусть на 1 запись узодит 200 байт, это дает нам гдето 28 мегов на файл! Ну зачем так ужасно то??? Ты просто попробуй открыть HTML такого размера. Такие вещи надо реализовавыть через постраничный вывод и в запросе применять LIMIT
...
Рейтинг: 0 / 0
13.09.2003, 17:05
    #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
13.09.2003, 19:54
    #32264356
Gt_
Gt_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускорить вывод большого количества записей?
у тебя что за бровсером принтер сидит ? или кому нужно сразу 150 тыщ ? :)
грят люди сотню уже струдом воспринимают, хотя алиены могут и поболее...
выводи страницы по 100.
...
Рейтинг: 0 / 0
14.09.2003, 07:17
    #32264437
ScableR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускорить вывод большого количества записей?
Тут спрашивали про альтернативный вариант, так его предложил Gt_. В качестве иллюстрации можно взять этот форум. Тут что, все 300 тем выводяться сразу? Нет, они разбиваются на пару страниц. А на каждой тем по 10-50 /не считал, не знаю/. Так ты и поступи. Выведи сначала первые /последние/ 10-50 записей, а потом при следующем запросе от клиента следующие, и так далее...
...
Рейтинг: 0 / 0
29.12.2003, 13:03
    #32365811
oz
oz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускорить вывод большого количества записей?
У некоторых браузеров проблема с выводом больших таблиц (не отобразит, пока не получит всю). Если уж приспичило выводить полный набор информации на одну страницу, то закрывай тэг <table> через (например) 1000 строк, а потом открывай его заново. Если не ошибаюсь, то такая проблема была у ИЕ.

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

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


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