кэширование, маленький вопросик

Статус
В этой теме нельзя размещать новые ответы.

zelez2006

Постоялец
Регистрация
25 Июн 2009
Сообщения
65
Реакции
15
Веду разработку сервиса сетевых дневников. Рассчитываю на большую посещаемость и дабы не нагружать сервер, хочу сделать такой крюк: при загрузке страницы дневника, выполняется до 50 запросов к Бд. Хочу генерировать для дневников статичную страницу, с указанием времени "кэширования". При загрузке статичной страницы будет всего один запрос - время изменения страницы. И если оно не будет совпадать с временем последнего изменения из Бд, статическая страница сгенерируется заново. Но это только главная страница дневника, остальные с постами и еще куча остальных только динамические. Раньше с кэшированием не сталкивался.
Подскажите, есть ли смысл столько возиться с этим, или оставить все страницы динамическими?
 
если ресурс с большой посещаемостью, то лучше использовать кэширование. оно ускорит "выдачу" страниц и разгрузит сервер. самое главное - правильно решить, когда кэшированные данные считать устаревшими.
 
Преждевременная оптимизация - зло!

Вот когда сервис будет умирать под нагрузкой, тогда и смотрите как можно помочь будет. Сейчас у тебя одно видение ситуации, а когда начнется реальная нагрузка, выстрелить может совсем другая проблема.

Так что оставляй как есть, а уж когда дойдешь до точки кипения, тогда и посмотришь что можно подкрутить, что можно закешировать.

Помимо кеширования есть множество вариантов решения проблем нагрузки, но решать проблему не имея самой проблемы, это все равно что вилами водить по воде.
 
Преждевременная оптимизация - зло!
Не вопрос... Но...
выполняется до 50 запросов к Бд.
... еще большее зло... Точнее, ето - зло вселенского масштаба!
Мне кажется нужно попробовать сократить кол-во запросов.


Хочу генерировать для дневников статичную страницу, с указанием времени "кэширования". При загрузке статичной страницы будет всего один запрос - время изменения страницы. И если оно не будет совпадать с временем последнего изменения из Бд, статическая страница сгенерируется заново.
Вот етот запрос, точно лишний. Проще оставить timestamp в самом файле кеша или вообще по времени создания файла смотреть и сбрасывать кеш при обновлении базы (напишите событие и вешайте на него обработчик);)
 
иногда для кеширования можно использовать прокси, т.е. вместо сервера запрос попадает на прокси, а тот его перенаправляет на другой порт с веб сервером.
А вообще слишком много запросов для одной странички, думаю стоит почитать документацию mysql и переписать запросы.
 
... еще большее зло... Точнее, ето - зло вселенского масштаба!
Мне кажется нужно попробовать сократить кол-во запросов.
О чем речь и идет. ТС пытается привязать кеширование, хотя имеет проблемы с архитектурой, даже создав полные кеши страниц, все равно придется кеш обновлять и все равно выползут эти 50 запросов.

Но может быть ТС имеет систему с 50 простейших запросов, с правильно выставленными индексами, без ORDER, без GROUP, без JOIN. Тогда 50 это не так и страшно.
 
совет, дельный. обновляй кеш только тогда, когда пользователь изменяет запись в дневнике, тоесть СРАЖУЗЕ после добавления новой записи. второй совет, используй не полное кеширование, тоесть для некоторых блоков страници полней кэш, для остальных (недавно добавленные пользователи и тд) можно вобще без кэша.
 
не торопись главное, кеш может подождать, а то "наоптимизируешь" еще сейчас
как нагрузка будет - так и возьмешься
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху