@Vlad_isLove

Можно ли хранить SQL запрос в переменной сессии PHP?

Есть PHP скрипт, который генерирует SQL код запроса к Базе Данных на основе фильтров выбранных пользователем и получает этим запросом данные из БД. Фильтры выставляются пользователем с помощью JavaScript и передаются как переменные через AJAX в PHP скрипт. Дело в том, что когда пользователь прокручивает страницу в самый низ через AJAX запрашивается еще контент и PHP скрипт заново генерирует тот же самый SQL код запроса(фильтры пользователь не менял). Я подумал что плохо каждый раз когда пользователь подгружает контент генерировать одинаковый SQL, для оптимизации буду генерировать новый SQL только когда пользователь меняет фильтры, а текущий SQL код сохранять в сессию, чтобы подгружать им новый контент.
Вопрос: Можно ли хранить SQL код в PHP переменной сессии? Будет ли это безопасно и не сможет ли пользователь получить SQL код?
  • Вопрос задан
  • 924 просмотра
Решения вопроса 1
orlov0562
@orlov0562 Куратор тега PHP
I'm cool!
Хранить в сессии SQL запрос вполне безопасно.

Обычно так не делают, потому что генерация запроса занимает ничтожно малое время в сравнении с выборкой данных. Для оптимизации, лучше оптимизировать запросы, и при возможности использовать кеширование результатов запроса или контента сформированного на основе этих результатов. Кеш запросов конфигурируется в настройках сервера баз данных. Кеш на стороне бекенда, может быть как кеш результатов запросов к бд, так и кеш контента который будет на основе этих результатов сгенерирован, для этого отлично подойдет Redis и Varnish.

Кеш непосредственно запроса, имеет смысл использовать, если для формирования конечного запроса, используются дополнительные запросы и эти запросы не поддаются кешированию на стороне бд.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Это совершенно бессмысленно.

Вообще, есть простое правило: не следует усложнять код на пустом месте.
Любой код должен всегда решать кокретную, существующую проблему. "Я тут подумал" - это не проблема. Поэтому решать её не надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы