#php #оптимизация #mysql
Приветствую
if(!isset($_SESSION['zapros'])){
//тут у нас запрос к базе, который возвращает массив $massiv;
$_SESSION['zapros'] = $massiv;
}
Знаю, так делать неправильно, совать в сессию все запросы. Но в силу того, что 'мне
хватает' - использую. Вопрос прост, как на сайте организовать уменьшение запросов от
одного пользователя? Мой способ, из эры динозавров - сунуть в сессию. Но правильно
ли это? Есть модная штука memcache, но никто не объяснит чем оно лучше той же сессии..
вот допустим у сессии лимит 128мб на всех пользователей (зависит от хостинга), а у
мем кэша есть недостатки?
Поможете разобраться?
p.s. да, знаю можно вообще заранее подготовленные данные из файла читать. меня интересует
чисто кэширование запросов
Ответы
Ответ 1
Memcache >>>>>>>>>>>>> сессия. Как можно догадаться, мемкэш держит все в памяти, а сессия сохраняется на диск - скорости будут просто несопоставимы. Тем более, не будете же вы для каждого пользователя писать список десяти последних новостей, например? Ну и первое, что вас должно было смутить: сессия - это штука, созданная исключительно для работы с пользователем. По-хорошему кэширование должно быть встроено уже на уровне дб или модели, когда опциональным аргументом метода указывается, что запрос может быть закеширован.Ответ 2
По-умолчанию MySQL умело кеширует на своей стороне запросы, если скорость с сервером MySQL высокая, то этого обычно достаточно. Если же нужно кешировать на стороне PHP, то лучше всего использовать хорошие ORM к примеру Doctrine.
Комментариев нет:
Отправить комментарий