|
|
|
| Всем вечер добрый!
Система регистрации построена так, что конфигурация пользователя(add_comment => 1, add_post => 0, итп) находится в базе данных.
При переходах по страницам, этот конфиг необходимо считывать из базы.
Получается не малое количество запросов к базе.
Как сократить количество запросов ? Я вот думаючто может временно записывать в текстовый файл или в сессию
- это вообще безопасно ? и как в принципе поступают в таких случаях ? | |
|
|
|
|
|
|
|
для: vorobey
(14.12.2010 в 18:30)
| | Записывайте серилизованный массив с настройками - один дополнительный запрос на страницу. | |
|
|
|
|
|
|
|
для: neadekvat
(14.12.2010 в 19:37)
| | Э? | |
|
|
|
|
|
|
|
для: Trianon
(14.12.2010 в 19:39)
| | А что? | |
|
|
|
|
|
|
|
для: neadekvat
(14.12.2010 в 20:20)
| | нормальная форма прахом пошла.
То есть можно, конечно, реализовать в качестве поля (таблицы сессий) кеширующего весь остальной набор полей (таблицы прав), но не более. | |
|
|
|
|
|
|
|
для: Trianon
(14.12.2010 в 21:28)
| | А если расценивать это поле не как настройки пользователя, а как просто текстовую информацию - ведь в бд она действительно будет только храниться.
Да и при изменении настроек пользователем обновляться будут все записи (если бы их было в бд больше одной) - вряд ли кто-то будет сверять новые данные и старые (это ж еще затратнее, по-моему). | |
|
|
|
|
|
|
|
для: neadekvat
(14.12.2010 в 22:00)
| | Очевидно, в некоторых случаях настройки пользователя может менять не[только] сам пользователь, а администратор.
Последнему периодически будет хотеться узнать, к примеру, каким пользователям присуща та или иная опция настройки. :)
То есть общее поле с серилизованным профилем - идея здравая, но не как замена структурированному хранению, а как дополнение ему - чиста для скорости отработки.. | |
|
|
|
|
|
|
|
для: neadekvat
(14.12.2010 в 19:37)
| | Вы имеете ввиду записывать сериализованный массив в одну "ячеку" базы данных и делать к ней запрос ? Тогда почему именно сериализованный? можно и обычный массив разобрать-собрать explode-implode. | |
|
|
|
|
|
|
|
для: vorobey
(14.12.2010 в 19:53)
| | Можно) | |
|
|
|
|
|
|
|
для: neadekvat
(14.12.2010 в 20:20)
| | :) и ничего не изменится как был один запрос так и останется.
Моя цель:
_ при авторизации идет запрос в базу(в любом случае)
_ авторизованный "ходит" по страницам и запроса не происходит - конфиг читается не из базы , а из ?? - Это вообще возможно или так не делают? | |
|
|
|
|
|
|
|
для: vorobey
(14.12.2010 в 21:03)
| | И сколько времени он будет так ходить авторизованным?
И как его выкинуть случчего? | |
|
|
|
|
|
|
|
для: Trianon
(14.12.2010 в 21:25)
| | Куки на 5 минут. | |
|
|
|
|
|
|
|
для: vorobey
(14.12.2010 в 21:37)
| | Так он, заходя раз в 4.59 минуты, вечно сидеть будет. | |
|
|
|
|
|
|
|
для: Trianon
(14.12.2010 в 21:43)
| | Да так и есть. А разве не так на этом форуме? я сижу уже второй час. | |
|
|
|
|
|
|
|
для: vorobey
(14.12.2010 в 21:51)
| | Сидите.
Но достаточно в БД поменять пароль - и Вы тут же вылетите. При следующем же обновлении страницы.
В Вашем случае БД никак не связана с сеансом. | |
|
|
|
|
|
|
|
для: vorobey
(14.12.2010 в 21:03)
| | По теме сказать не могу. Но так, к слову - при разработке одного сайта я подключал форум phpbb третьей версии.
И чтобы самому не таскать лишнюю информацию из базы, решил посмотреть, что же находится в объекте класса user (который в свою очередь является потомком session).
print_r($user) выдало страницу в 154 кб - это примерно 25 моих экранов.
Стоит ли говорить, сколько там всяких запросов, цепляний файлов и т.д.
Так что один запрос на одного пользователя на одну страницу - это, по-моему, не так уж и страшно. | |
|
|
|
|
|
|
|
для: neadekvat
(14.12.2010 в 21:28)
| | Ну, тогда оставлю как есть и не буду изгаляться. | |
|
|
|
|
|
|
|
для: vorobey
(14.12.2010 в 18:30)
| | имхо, вы усложняете себе жизнь
врядли этот один запрос будет самым узким местом в вашем приложении | |
|
|
|
|
|
|
|
для: ride
(14.12.2010 в 22:29)
| | уже понял. спасибо всем. | |
|
|
|