programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 01/10/08 в 20:00 |
траффик порядка 5к в сутке
на индексе сайта выполняет порядка 5-6 селектов
из них 1 - емкий , пробегается по каталогу и подсчитывает кол-во items в категориях
ни кеша ни статики, все работает в динамике
вопрос, как определить какие процессы (запросы) грузят сервак, и грузят ли вообще, поскольку сомневаюсь в квалификации админа
|
|
|
|
С нами с 08.02.03
Сообщения: 10564
Рейтинг: 5962
|
Добавлено: 01/10/08 в 20:44 |
Процесс глянь в phpadmin и погляди на индексы.......
Все что после where индекси ;)
|
|
|
|
С нами с 25.08.08
Сообщения: 18748
Рейтинг: 1251
|
Добавлено: 01/10/08 в 20:48 |
тебе скорее всего правильные индексы помогут. (либо у тебя их нет. либо они не на то стоят. это в девяти случаев из десяти бывает)
если хочешь по подробнее знать где и как грузится база, просто пиши время выполнения каждго запроса в файл. потом смотри его и думай
бывает что относительно редкий запрос грузит базу так, что мама не горюй.
попробуй делать все обращения к базе через одну функцию, а в ней пропиши что то типа этого.
$stime = microtime(); //время перед запросом.
// обращаемся к базе
$mysql_eval_error="";
$mysql_eval_result = mysql_query($query, $database) or $mysql_eval_error = mysql_error();
$etime = microtime(); // время после запроса
if($etime - $stime > 0.05) // Отсекаем быстрые запросы и пишем только медленные.
{
// пишем в файл.
$fp = fopen("sql.txt", "a+");
flock($fp, 2);
fwrite($fp, "$query\n".mysql_num_rows($mysql_eval_result)."\n$etime-$stime=".($etime-$stime)."\n\n");
fclose($fp);
}
в if пропиши сначала какое ни будь максимальное значение, что бы в файло попадали только самые медленне запросы. оптимизируй их. потом у меньшай время и снова смотри. и так далее.
|
|
|
|
С нами с 05.04.07
Сообщения: 1661
Рейтинг: 1090
|
Добавлено: 01/10/08 в 21:24 |
Sterx писал: | ни кеша ни статики, все работает в динамике |
Как уже посоветовали необходимо поглядеть на индексы, но в данному случае я бы посоветовал всё-таки внедрить кеширование, особенно сюда
Sterx писал: | из них 1 - емкий , пробегается по каталогу и подсчитывает кол-во items в категориях |
не думаю что количество итемов так уж часто меняется.
З.Ы. Да и вообще, чистая динамика мало где нужна ;)
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 01/10/08 в 22:04 |
taj писал: | Как уже посоветовали необходимо поглядеть на индексы, но в данному случае я бы посоветовал всё-таки внедрить кеширование, особенно сюда
не думаю что количество итемов так уж часто меняется.
|
до 300 в день добавляется, а будет еще больше
сейчас порядка 4000 items
кеширование мускуля или кеш страницы сделать на час к примеру?
|
|
|
|
php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 01/10/08 в 22:41 |
Sterx писал: |
вопрос, как определить какие процессы (запросы) грузят сервак, и грузят ли вообще, поскольку сомневаюсь в квалификации админа |
1. Поставь mytop - увидишь запросы в realtime и время их выполнения.
2. В конфиг мускуля впиши log-slow-queries и всё с этим связанное. Читать где-то здесь - http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html
А так, правильно сказали - делай индексы, делай кеш (или обнолвение по крону, а в реалтайме только статику отдавай.. ). Если совсем тяжело будет - смотри в сторону memcached... Но думаю до этого не дойдут руки :))
|
|
|
|
С нами с 05.04.07
Сообщения: 1661
Рейтинг: 1090
|
Добавлено: 01/10/08 в 23:25 |
Sterx писал: | из них 1 - емкий , пробегается по каталогу и подсчитывает кол-во items в категориях |
Перечитал и показалось мне что это вообще не запрос, а функция. Так? Потому-что у мускула каталогов нет,а count(*) много времени не съест.
Sterx писал: | до 300 в день добавляется, а будет еще больше
сейчас порядка 4000 items
кеширование мускуля или кеш страницы сделать на час к примеру? |
Конечно кеширование всей страницы хотя бы на час даст хороший выигрыш, ведь не будет делаться ни одного запроса.
5к хитов сутки/24 * 6 запросов=1250 запросов в час экономии, но применимо только там где-динамики нет вообще.
Если всё-таки динамика нужна какая-то (разные баннеры/пикчи/тексты нужно подгружать,или просто тумбы в разном порядке) то можно кешировать результаты функций (запросов) которые за неё не отвечают, и обновлять кеш либо по устареванию, либо сбрасывать вручную когда данные кеша изменяются. Например, закешировать количество итемов в категории и назвать кеш ItemsCountCAT_ИДкатегории. Если добавляем итем в эту категорию то сбрасываем именно этот кеш. Такой подход имхо даёт отличный результат, потому что мы не будем принудительно перегенерировать кеш для не обновленных данных, хотя в твоём случае (большая интенсивность обновления) вариант с "отложенным" добавлением смотрится предпочтительнее.
В общем тут на месте разбираться нужно ))
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 02/10/08 в 01:54 |
проиндексил таблицу главную
вроде помогло, посмотрим дальше
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 02/10/08 в 02:51 |
Sterx писал: | траффик порядка 5к в сутке
на индексе сайта выполняет порядка 5-6 селектов
из них 1 - емкий , пробегается по каталогу и подсчитывает кол-во items в категориях
ни кеша ни статики, все работает в динамике
вопрос, как определить какие процессы (запросы) грузят сервак, и грузят ли вообще, поскольку сомневаюсь в квалификации админа |
откуда ты умозаключил что сервер вообще что-то грузит?
откуда ты умозаключил что сервер грузит mysql?
5к в сутки и 5-6 запросов это смешно просто, если у тебя таблица не в несколько миллионов записей.
p.s.
некоторым товарищам тут лучше вообще не писать,бредятина такая...
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 02/10/08 в 08:12 |
xreload писал: | откуда ты умозаключил что сервер вообще что-то грузит?
откуда ты умозаключил что сервер грузит mysql?
|
страницы с выборками отдавались по несколько секунд
слова админа
|
|
|
|
С нами с 08.02.03
Сообщения: 10564
Рейтинг: 5962
|
Добавлено: 02/10/08 в 08:36 |
Давай структуру и запросы, щас все сделаем будет летать ;)
+1 вынести в крон кое чего....... раз в 5 мин
а тупить может и при 10 запросах в час, сам видел и исправлял ;)
Да и конфиг сервака или че там и my.cfg
Последний раз редактировалось: JM (02/10/08 в 08:43), всего редактировалось 1 раз
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 02/10/08 в 08:43 |
все в принципе и так уже летает
всем спасибо
|
|
|
|
С нами с 17.03.08
Сообщения: 247
Рейтинг: 235
|
Добавлено: 05/10/08 в 16:00 |
может у него конечно там запросы навороченные group by или куча связанных таблиц в запросе, вообще не о чем топик без самого select и остальной инфы типа- структура базы, кол-во записей, с чего вдруг решил что сервер грузит ну и конфиг сервера...
а так конечно mysql грузит, оптимизировать надо...
|
|
|
|