Здравствуйте. У меня вот вопрос. Есть допустим страница: вывод последних 3х новостей.
Там идет цикл, в цикле еще 3 запроса (счетчики комментариев к каждой новости). Конечно лишние запросы - это беда.
Но я решил воспользоваться кэшированием, самым обычным))
Я не люблю его вовсе, когда информация опаздывает, но у меня вот вопрос: лучше будет использовать обычный вывод, или с кэшированием + например если напишут комментарий, кэш обновляется ?
кэш конечно же лучше ведь он статический и нет смысла дергать базу просто так
спасибо большое Долго думал что же выбрать ))
Неужели у тебя такая нагрузка, что без кеша не обойтись? 1 запрос + 1 цикл на страницу не так уж и много
Я пример просто привел)) Если это и есть гуд, то почему бы в каждом подобном разделе не сделать такое ?
Из-за постоянно вылетающей 408 пост потерялся. Снова писать сколько впадлу.
Суть- делай кэш там, где данные обновляются редко
Дабы не создавать тему, пишу тут снова.
---
Например я взял дкмс (ЭТО ДЛЯ ПРИМЕРА !!!): цикл, вывод 10 сообщений в гостевой. В ней функция online() которая отображает онлайн юзер или нет. Онлайн, если активность последняя была менее 10 минут. В цикле, получается каждый раз функция online обращается к бд, чтоб проверить. Я сделал кэширование на каждого юзера. если кэш был обновлен более 5 минут назад, то мы его обновляем. Вот тут то у меня возникла проблема. Каждый переход на страницу - мы обновляем инфу о том когда был последний переход. И вот если кэш устарел, и мы заходим на сайт через некоторое время, идет запрос:
mysql_query(\"UPDATE `user` SET `date_last` = \".$time.\" WHERE `id` = \'$user[id]\' LIMIT 1\"
сразу же после этого у меня идет кэширование. Но в файл кэша записывается старый date_last.
Я знаю, что после этого запроса, можно снова объявить переменную $user чтоб он взял предыдущие данные включая обновленный date_last но это ведь былокод + 1 лишний запрос на всех страницах. В итоге надо ждать, еще 5 минут чтоб обновился кэш и юзер высветился в онлайн. Как мне можно date_last обновленный сразу впихнуть в кэш ?
В случае онлайна- не нужен кэш. Он лишний. Данные динамические.