|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
Извлекаю запросом из MySQL'я большое количество записей - 140 000 (это происходит быстро). Загоняю в PHP массив, и в цикле вывожу эти строки в HTML-таблицу. Ждать вывода таблицы приходится очень долго. Подскажите, пожалуйста - есть ли способ ускорить? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2003, 16:42 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
А зачем ты его в массив загоняешь! По одной строчке выводи! Не делай таблицу (HTML) на все записи! Сделайт таблицу (HTML) на каждую запись! mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2003, 16:54 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
>>Сделайт таблицу (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...> по количеству столбцов в таблице единственное... фиксированные поля таблицы А выводит по частям- очень удобно для твоего случая. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2003, 17:31 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
Я для вывда использую следующую процедуру. 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>   ".$row[$j]."   </td>"; } echo "</tr>"; } print "</table>"; } Чувствую, что сам себе затрудняю процесс. Подскажите, как ее можно подправить для возростания эффективности? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2003, 08:53 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
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>'; } ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2003, 09:35 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
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 результат запроса ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2003, 09:39 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
Спасибо за помощь, но скорость вывода, тем не менее остается неудовлетворительной - примерно 3500 строк в минуту. Получается, что наилучший вариант - это когда каждая строка выводится как отдельная таблица. Тогда на экране получается хотя бы построчный вывод. Кривой способ, конечно, но может быть есть его альтернативные варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2003, 10:20 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
Можно включить буферизацию (ob_start())....но всё равно надо ждать пока отработает скрипт...AFAIK попробуй выводить порциями скажем по 50 записей а там кноповка <далее> и ещё 50..... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2003, 10:30 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
Но чем не устраивает такая скорость ? По-моему нормально.... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2003, 10:34 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
150 тысяч выводит? Пусть на 1 запись узодит 200 байт, это дает нам гдето 28 мегов на файл! Ну зачем так ужасно то??? Ты просто попробуй открыть HTML такого размера. Такие вещи надо реализовавыть через постраничный вывод и в запросе применять LIMIT ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2003, 00:31 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
а что если сначала сформировать а потом выводить 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; } помоему должно быстреее работать ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2003, 17:05 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
у тебя что за бровсером принтер сидит ? или кому нужно сразу 150 тыщ ? :) грят люди сотню уже струдом воспринимают, хотя алиены могут и поболее... выводи страницы по 100. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2003, 19:54 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
Тут спрашивали про альтернативный вариант, так его предложил Gt_. В качестве иллюстрации можно взять этот форум. Тут что, все 300 тем выводяться сразу? Нет, они разбиваются на пару страниц. А на каждой тем по 10-50 /не считал, не знаю/. Так ты и поступи. Выведи сначала первые /последние/ 10-50 записей, а потом при следующем запросе от клиента следующие, и так далее... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2003, 07:17 |
|
Как ускорить вывод большого количества записей?
|
|||
---|---|---|---|
#18+
У некоторых браузеров проблема с выводом больших таблиц (не отобразит, пока не получит всю). Если уж приспичило выводить полный набор информации на одну страницу, то закрывай тэг <table> через (например) 1000 строк, а потом открывай его заново. Если не ошибаюсь, то такая проблема была у ИЕ. Who is Fuck the Alise? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2003, 13:03 |
|
|
start [/forum/moderation_log.php?user_name=%D0%9A%D0%B0%D0%BA%D1%82%D1%83%D1%81%D0%BE%D0%B2%D1%8B%D0%B9+%D0%9C%D0%B0%D1%87%D0%BE]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 755ms |
total: | 961ms |
0 / 0 |