Пока в теории, поэтому не могу сделать benchmark
1)Сессии - хранятся в папке tmp в виде файлов внутри которых есть, и sql запросы и html, и служебные данные.
2)
CREATE TABLE `admin` (
`id` INT NOT NULL AUTO_INCREMENT,
`login` VARCHAR(40) NOT NULL,
`pass` VARCHAR(40) NOT NULL,
`hash` CHAR(40) ,
PRIMARY KEY (id),
UNIQUE login_unq(login),
UNIQUE hash_unq(hash)
);
Эмуляции сессий с помощью cookie и таблицы, в таблице admin есть значение hash для идентификатора (аналог session_id), и есть возможность записывать в cookie этот hash, а при входе, обновление страницы генерировать новый hash и записывать его в cookie, при выходе удалять куки,а иначе она сама удалиться через заданное время.
1)Ожидаемые проблемы сессий: что если 1млн посетителей будет 1млн файлов средний размер которых от 25 до 56 кб, что дает расход памяти от 25,8Гб до 53,4 Гб
Плюсы сессий: удобно, есть функции для работы.
2)Ожидаемые проблемы эмуляции сессий: много запросов к БД,
Плюсы эмуляции сессий: память в БД равна, один hash CHAR(40) равен 40 байт, а это 38,1 мб на 1млн.
Проблема безопасности: если стянут БД , то могут использовать hash, подставив в свои cookie. Возможное решение: в БД записывать преобразованный в sha1(hash), в куки только сам hash, hash из куки преобразовать в sha1 для сравнения с значениями из БД.
Может где-то ошибаюсь...