|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.03.2010, 23:30 | #1 |
Пользователь
Регистрация: 06.06.2008
Сообщений: 47
|
нужно оптимизировать код
Вобщем нужно вывести в из базы количество посещений страниц.
В названиях страниц в таблице не должны присутствовать передаваемые методом GET переменные. Например, /folder/page.php?DNSID=fd44892a0f4d1cb7cc29 61baf511aea5 и /folder/page.php?var=50&DNSID=a91373ce49306 662d9636e9e57ef6c01 - это одна и та же страница, в таблице она должна быть представлена как /folder/page.php в базе хранится лог файл сервера апач. в виде: id host date files serv_req traf 1 83.69.119.43 2005-12-25 / 200 17980 2 83.69.119.43 2005-12-25 /design/main.css 200 8795 .... 41 213.180.217.8 2005-12-25 /contest/view.php?DNSID=0eb6ee75 .. В базе порядка 27000 строк, поэтому время загрузки это большая проблема. Может кто подсказать метод удачней моих алгоритмов? А то страница грузится дольше 30 сек.. а еще даже не все реализовано.. Код:
|
18.03.2010, 23:57 | #2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,160
|
чет недопонимаю.... сами говорите что в бд УЖЕ хранится лог апача.... и тут же - что там не должны быть записи такого типа (с параметрами)...
может вам из существующей бд просто выборку сделать с условиями? этот запрос не сработает но мысль донесет - выборка по левой части строки и группировка.. я думаю в мускуле есть такие возможности Код:
|
19.03.2010, 00:15 | #3 | ||
Пользователь
Регистрация: 06.06.2008
Сообщений: 47
|
Лог апача уже хранится, имеется ввиду, что записи с параметрами типа GET должны выводиться в результат без параметров.
Цитата:
Цитата:
Но все равно, этого не достаточно, нужно сократить время загрузки. В выборке останется где то 10000 строк, заносить такое в массив тоже не из быстрых действий.. нужно придумать какое то условие что ли.. или алгоритм сделать по короче.. |
||
19.03.2010, 05:34 | #4 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Код:
27000 строк занимают около 2.5Мб в чистом виде. Вы это всё читать собрались? Зачем вывод на экран? Какова вообще идея данного скрипта? Кстати, скрипт автора неработоспособен. Он зацикливается на обработке первой же строчки. Использование while необдуманно может быть очень опасно.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
19.03.2010, 08:25 | #5 | |
Пользователь
Регистрация: 06.06.2008
Сообщений: 47
|
Оо вообще круто! Я даже не знал такой функции.. Спасибо!
Из этих строк будет делать отчёт о наиболее посещаемых страницах. Код терь такой, работает очень даже ничего: Цитата:
|
|
19.03.2010, 09:56 | #6 | |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,160
|
тут же он все строки выдаст?
Код:
Цитата:
|
|
19.03.2010, 16:42 | #8 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Я бы настоятельно советовал делать "обрезание" строки с путём во время ДОБАВЛЕНИЯ в базу, то есть во время парсинга логов апача.
А ещё лучше сделать таблицу статистики посещений типа "id, path, count" - и обновлять её во время парсинга логов апача. Таким образом скорость обращения к такой странице будет мгновенной, а основная нагрузка будет приходиться на момент парсинга (минус тут в том, что статистика получается "отложенной", а не в реальном времени).
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
20.03.2010, 01:09 | #9 | |
Пользователь
Регистрация: 06.06.2008
Сообщений: 47
|
Спасибо всем, сделал неожиданно просто, одним sql-запросом =)
Цитата:
Последний раз редактировалось adwaer; 20.03.2010 в 14:17. |
|
20.03.2010, 16:06 | #10 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Какая-то дурацкая привычка в последнее время появилась. Делать вот так:
$row = mysql_fetch_assoc($rezult); do {...} while($row = mysql_fetch_assoc($rezult)); Оптимизировать код и делать вот так - это как ехать на полной скорости на Порше с ручником.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оптимизировать код копирования | tae1980 | Microsoft Office Excel | 3 | 27.02.2009 21:43 |
Что нужно оптимизировать? | nemoomen | Microsoft Office Excel | 13 | 27.02.2009 06:28 |
Помогите оптимизировать код | tae1980 | Microsoft Office Excel | 2 | 11.02.2009 23:24 |
Оптимизировать код. | Манжосов Денис :) | Общие вопросы Delphi | 1 | 20.10.2008 19:06 |
Оптимизировать код | NeiL | Помощь студентам | 2 | 21.02.2008 08:57 |