Створювати сесії тільки для залогіненним користувачів

Ще раз - на кожен запит робота створюється новий файл сесії.

Якщо у вас сесії зберігаються, скажімо, 24 хвилини (за замовчуванням), то це ще не дуже позначається. Але коли ви вирішите збільшити час зберігання сесії до місяця, щоб користувача з кошика не викидало, то досить скоро у вас в tmp / накопичиться під мільйон файлів. В результаті PHP при відкритті сторінки або очищення сміття буде працювати повільно і відчутно витрачати ресурси сервера.

Тому рекомендація така: зберігайте сесії для користувачів, які зберігають ваші куки. Ставимо куку, перевіряємо на наступному запиті, чи є ця кука, якщо є - можна запускати session_start ().

Всякі не надто важливі дані, які вам потрібні для всіх користувачів (наприклад, місто, з якого прийшов користувач), зберігайте в куках.

Якщо у вас сесії зберігаються, скажімо, 24 хвилини (за замовчуванням), то це ще не дуже позначається. Але коли ви вирішите збільшити час зберігання сесії до місяця, щоб користувача з кошика не викидало, то досить скоро у вас в tmp / накопичиться під мільйон файлів. В результаті PHP при відкритті сторінки або очищення сміття буде працювати повільно і відчутно витрачати ресурси сервера.

Саме це і сталося. Проект вже досить складний, напіан на ZF, з напливом відвідувачів і створенням мільйонів сесій став ледве працювати. Тому постали питання по зміні архітектури. На жаль, доведеться перелопатити масу коду, щоб змінити архітектуру сесій.

Можна поглянути на це з іншого боку: нижче egorinsk висловив гарну ідею про інкапсуляцію, а рефакторинг робить ваш код краще :)

Схожі статті