@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
Чебуратор тега РНР
Это совершенно бессмысленно.

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽