{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1. [автор] (8 сен 2013, 03:21) [0/0] [0] [отв] [спам] [под] +1 | -1

Здравствуйте. У меня вот вопрос. Есть допустим страница: вывод последних 3х новостей.
Там идет цикл, в цикле еще 3 запроса (счетчики комментариев к каждой новости). Конечно лишние запросы - это беда.
Но я решил воспользоваться кэшированием, самым обычным))
Я не люблю его вовсе, когда информация опаздывает, но у меня вот вопрос: лучше будет использовать обычный вывод, или с кэшированием + например если напишут комментарий, кэш обновляется ?

2.
SV * 2.63
(8 сен 2013, 03:32) [0/0] [0] [отв] [спам] [под] +1 | -1

кэш конечно же лучше* ведь он статический* и нет смысла дергать базу просто так

3. [автор] (8 сен 2013, 03:35) [0/0] [0] [отв] [спам] [под] +1 | -1
SV,

спасибо большое * Долго думал что же выбрать ))

4.
~AL~ * 11.86
(8 сен 2013, 03:59) [0/0] [0] [отв] [спам] [под] +1 | -1

Неужели у тебя такая нагрузка, что без кеша не обойтись? 1 запрос + 1 цикл на страницу не так уж и много

5. [автор] (8 сен 2013, 04:17) [0/0] [0] [отв] [спам] [под] +1 | -1
~AL~,

Я пример просто привел)) Если это и есть гуд, то почему бы в каждом подобном разделе не сделать такое ?

6.
SV * 2.63
(8 сен 2013, 11:18) [0/0] [0] [отв] [спам] [под] +1 | -1

Из-за постоянно вылетающей 408 пост потерялся. Снова писать сколько впадлу.
Суть- делай кэш там, где данные обновляются редко

7. [автор] (8 сен 2013, 16:07) [0/0] [0] [отв] [спам] [под] +1 | -1
SV,

Хорошо, спасибо.

8.
Victor * Верифицирован 41.37
(8 сен 2013, 16:08) [0/0] [0] [отв] [спам] [под] +1 | -1

Кэш это гуд


Очаг
9. [автор] (8 сен 2013, 20:22) [0/0] [0] [отв] [спам] [под] +1 | -1

Дабы не создавать тему, пишу тут снова.
---
Например я взял дкмс (ЭТО ДЛЯ ПРИМЕРА !!!): цикл, вывод 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 обновленный сразу впихнуть в кэш ?

10.
SV * 2.63
(8 сен 2013, 21:09) [0/0] [0] [отв] [спам] [под] +1 | -1

В случае онлайна- не нужен кэш. Он лишний. Данные динамические.

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений