Маркус

Рейтинг
30
Регистрация
05.02.2014
nomarketing:
Сайт - на обычном хостинге где хостяться еще сайты - но когда были проблемы раньше - чаще - хостер говорил что бд падает из за запросов.

Ага, т.е. падение могло быть не по вине вашего сайта, а по вине какого-то другого сайта, который положил СУБД хостера?

С вашей CMS я не знаком, поэтому не скажу, как именно подсчитать число запросов БД. Но если бы такая задача была поставлена...

1) Разворачиваем сайт на Win- Denwer

2) разворачиваем реальную базу с сайта

3) ищем в скриптах место, в котором РНР обращается к MySQL, и ставим там инкрементирующий счётчик. Например, пишем в файл строчку. По окончании загрузки страницы открываем файл и считаемч число строк. (Если есть время разобраться с CMS, то можно и более красивый счётчик сочинить)

4) повторяем процедуру для разных страниц. Записываем результаты измерений.

postavkin, если вам так будет понятнее, то советую оформить код выборки из БД в отдельную функцию (или метод класса, если используется ООП). А потом вызывать эту функцию в обоих файлах. Так вы избежите дублирования кода.

Можно использовать класс и уточнение класса. Например:

<div class="my-class-1 detail-1">...</div>

<div class="my-class-1 detail-2">...</div>

...

<div class="my-class-2 detail-1">...</div>

А в CSS файле используем для определения стиля такие конструкции:

.my-class-1 {...}

.my-class-2 {...}

/* в следующих строчках нет пробела в CSS-селекторе*/

.my-class-1.detail-1 { ...уточняем... }

.my-class-1.detail-2 { ...уточняем... }

nomarketing, лично я бы начал диагностику с общего числа SQL-запросов, которые выполняются, чтобы сформировать страницу. Бывает так: думаешь, что там 5-10 небольших запросов. А на самом деле оказывается 900-1000. Причём 90-95% из них просто лишния.

У вас есть возможность отследить, сколько SQL-запросов выполняется при формировании страниц?

---------- Добавлено 24.02.2014 в 20:31 ----------

Следующее, что приходит в голову — проверить железо. Винчестеры имеют обыкновение через 4-6 лет работать жутко медленно. Бывает и так: в коде ничего не меняешь, но на новой винчестере БД летает, а на старом — глохнет.

Далее я бы использовал утилиту innotop в период пиковых нагрузок. Утилита в реальном времени показывает долго выполняющиеся запросы.

Для этой же цели можно переконфигурировать MySQL. В my.cnf прописать логгирование медленных запросов. Порог поствить, например, 10 или 15 секунд — если запрос выполняется дольше порога, он будет записан в лог-файл. Если в лог файл ничего не попадает, то понижаем порог.

postavkin, в вашем описании PHP-код это часть load2.php (я именно так понял) или это код, который выполняется до формирования страницы, подгружающей 1.js?

Во-первых, в PHP-файле вам нужно распечатать значение вашей переменной. Например, в JSON-формат. А в JS-файле ожидать, что ответ вам вернётся в формате JSON.

Распечатать переменную в PHP в формат JSON можно функцией json_encode(), т.е. так:

echo json_encode( $spisokurl )

1 23
Всего: 26