Запросить все сразу и сохранить в сеансе или несколько раз? - PullRequest
2 голосов
/ 15 июня 2009

Я создаю приложение PHP / MySQL, где пользователи могут входить в систему и искать медиаресурсы. Они также могут сохранять результаты поиска и создавать лайтбоксы (коллекции ресурсов). Наконец, они могут создавать группы пользователей.

Имеет ли смысл запрашивать у всех сразу, при входе в систему, идентификаторы для сохраненных поисков, лайтбоксов и групп и сохранять их в сеансах? Или выполнять запросы, когда они впервые попадают на соответствующие страницы? Я ищу эффективность, и сессии кажутся подходящими, но я что-то пропускаю?

Ответы [ 3 ]

5 голосов
/ 15 июня 2009

Самое большое правило: Помещайте в сессию только то, что вам нужно в сессии

Я не думаю, что было бы целесообразно помещать все необходимое в сеанс сразу, потому что у вас будет много случаев, когда это не нужно. Возможно, пользователь не останется достаточно долго, чтобы использовать все имеющиеся там данные, поэтому вы просто потратили время и ресурсы на их размещение.

Разместите вашу информацию там по требованию (когда они переходят на каждую страницу, которая требует эту информацию).

Всегда держите ваш сессионный объект аккуратным и стройным, и ваша производительность будет вам благодарна.

3 голосов
/ 15 июня 2009

Запрашивать все при входе в систему - плохая идея. Во-первых, это замедляет вход в систему, а во-вторых, создает статическую нагрузку на ваш сервер SQL для каждого входа в систему.

Если вы запрашиваете, когда это применимо, у вас различная нагрузка. (даже если вы кешируете результаты для последующего использования)

Также, если вы сохраняете результаты в сеансах, то вы увеличиваете объем памяти, используемый для каждого запроса этого пользователя.

Есть много вещей, которые могут быть полезны для вашего конкретного сайта, но нам нужно больше данных, чтобы ответить на этот вопрос лучше.

0 голосов
/ 15 июня 2009

Запросите только то, что вам нужно и когда это необходимо.

Короткий пример, который доказывает, что все в одном запросе неверно:

Если вы запрашиваете данные для входа в систему и данные пользователя, и вход в систему идет плохо, остальная часть запроса не будет использоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...