Является ли это «лучше» (более эффективным, быстрым, безопасным и т. Д.) Для данных кеша (A), которые используются при каждой загрузке страницы в массиве $ _SESSION (но все же запрашивает таблицу для флага для перезагрузки данных) или (B) каждый раз загружать его из базы данных?
Я использую метод кеша (A), но я беспокоюсь, что с сотнями пользователей память может стать проблемой? Это просто данные, такие как имя, фамилия, день рождения и т. Д.
С помощью любого метода все еще выполняется запрос. Мысли?
Если ваши данные используются на всех страницах и одинаковы для всех пользователей, я бы не кэшировал их в $ _SESSION (что означает наличие другой копии этих данных для каждого пользователя), но с другим mecanism, например:
Если ваши данные не одинаковы для каждого пользователя (что, по-видимому, имеет место в вашей ситуации, поскольку вы кешируете имена, даты рождения, …) :
В качестве побочного элемента: если вы делаете один и тот же запрос снова и снова, сервер БД должен кэшировать его сам по себе (для MySQL он войдет в « кеш запросов »); так что это было бы не так плохо, как вы думаете, я полагаю, даже если не так оптимизирован ^^
Это зависит от того, какой вы обработчик сеанса. Ваш обработчик сеанса может быть MySQL, и, следовательно, вопрос не будет лучшим, но как оптимизировать обработку сеанса.
Обработчик сеанса PHP по умолчанию – это файлы, но его можно легко изменить на mysql.
Если вы говорите о не-пользовательских данных, просто сохраните их в БД. Беспокойство об оптимизации, если вы столкнетесь с проблемами позже. Обычно гораздо выгоднее использовать лучший дизайн, а затем думать об оптимизации перед рукой. Создайте свой код, чтобы вы могли легко использовать другой обработчик для хранения, и позже у вас не будет проблем с оптимизацией.
Если это специфично для пользователя, используйте сеанс, но при необходимости используйте соответствующий обработчик сеанса.