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