Страницы

Поиск по вопросам

понедельник, 13 апреля 2020 г.

Устранение излишних запросов на сайте

#php #оптимизация #mysql

                    
Приветствую
if(!isset($_SESSION['zapros'])){
    //тут у нас запрос к базе, который возвращает массив $massiv;
    $_SESSION['zapros'] = $massiv;
}

Знаю, так делать неправильно, совать в сессию все запросы. Но в силу того, что 'мне
хватает' - использую. Вопрос прост, как на сайте организовать уменьшение запросов от
одного пользователя? Мой способ, из эры динозавров - сунуть в сессию. Но правильно
ли это? Есть модная штука memcache, но никто не объяснит чем оно лучше той же сессии..
вот допустим у сессии лимит 128мб на всех пользователей (зависит от хостинга), а у
мем кэша есть недостатки?
Поможете разобраться?
p.s. да, знаю можно вообще заранее подготовленные данные из файла читать. меня интересует
чисто кэширование запросов    


Ответы

Ответ 1



Memcache >>>>>>>>>>>>> сессия. Как можно догадаться, мемкэш держит все в памяти, а сессия сохраняется на диск - скорости будут просто несопоставимы. Тем более, не будете же вы для каждого пользователя писать список десяти последних новостей, например? Ну и первое, что вас должно было смутить: сессия - это штука, созданная исключительно для работы с пользователем. По-хорошему кэширование должно быть встроено уже на уровне дб или модели, когда опциональным аргументом метода указывается, что запрос может быть закеширован.

Ответ 2



По-умолчанию MySQL умело кеширует на своей стороне запросы, если скорость с сервером MySQL высокая, то этого обычно достаточно. Если же нужно кешировать на стороне PHP, то лучше всего использовать хорошие ORM к примеру Doctrine.

Комментариев нет:

Отправить комментарий