Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как добавить кеширование в профиль пользователя DLE?

Как добавить кеширование в профиль пользователя DLE?


     06.05.2019    профиль dle    Общие вопросы по PHP, Модули    147

вопрос
Всем привет. Заметил недавно что в профиле используется по 8 sql Запросов и они не кешируются. Вот и появился вопрос как же добавить туда кеширование? Вообще удивлен почему разработчики оставили столько запросов в профиле.
Все сидел думал как бы прикрутить кеширование но вот проблема в том что у пользователей есть баланс на сайте информация о балансе вытаскивается вместе со всеми данными пользователя. Как обновлять такой кэш вроде DLE все суффиксы кеша делает либо в archive либо в news

Версия dle 11.3

Ответа пока нет


5 комментариев

kaylos98
Юзер

kaylos98 - 6 мая 2019 21:35 -

Пока что отключил не нужные функции в профиле типа попдписка на комментарии и т.д так как на сайте они не используются.


Но вот вопрос. Если закешировать отдельно баланс к примеру. Какой суффикс ему указывать?

Flash
Эксперт

Flash - 6 мая 2019 23:31 -

Зачем вообще кешировать отдельно поле "баланса"? Страницу профиля обычно редко посещают, нужно ли ее кешировать вообще?

kaylos98
Юзер

kaylos98 - 7 мая 2019 02:24 -

К сожалению у меня часто пополняют так как в профиле и подписка выберается и счет пополняется. Цель не закешировать отдельно баланс, а вообще кешировать страницу профиля, так как там 8 запросов, посещаемость сайта 27000 а посещаемость профиля в день примерно 7000-8000 тысяч и такое количество запросов просто нагружает сильно бд и долго отвечает сайт, эта страница сильно грузит весь сайт, на главной странице более 12 custom но все с кешем и по этой причине всего 2 запроса.



Пока что решил просто немного переделать profile.php, и убирать ненужные функции

dj-avtosh
php-developer

dj-avtosh - 9 мая 2019 13:45 -

есть такое понятие как information_schema в зависимости от которой кэшируется сам объект mysql, так вот - если у вас виртуальный/выделенный сервер, то вам надо начать с включения кэширования на уровне mysql - query_cache_type в режиме ON или DEMAND. И желательно включить логирование медленных запросов и смотреть откуда реальная нагрузка на бд.

telegram: @blob42
skype: elhan.isaev (seldom)

nowheremany
Эксперт

nowheremany - 14 мая 2019 10:50 -

Сначала нужно разобрать что кэшировать - т. е. какие запросы у вас используются. После - что можно, что нельзя кэшировать. По стандарту там вроде бы 2 запроса - получить пользователя, получить новости на модерации конрктного пользователя.

Обычно баланс пользователя вставляется в ту же таблицу users, т. е. он не добавляет запрос. Но это на усмотрение программиста и его кривых рук.

ЗЫ количество запросов не равно нагрузка на базу. Так что кэшировать возможно смысла и нет. Достаточно корректно оптимизировать индексы и тп.

Благодарность принимаю тут Связь

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх