
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
30.05.2016, 23:14
|
|||
|---|---|---|---|
Один лишний запрос или все в куче (оптимизация)? |
|||
|
#18+
При любых обращениях к бд в коде проверяется СИСТЕМНЫЙ статус пользователя (не заблокирован ли он на сайте администрацией сайта). ПЕРВОЕ: Можно делать один ОТДЕЛЬНЫЙ простой запрос и далее решать разлогинить пользователя и вывести сообщение о том что он заблокирован ИЛИ далее продолжить работу (обработку). ВТОРОЕ: В запросе, например, на вывод инфоПрофиля пользователя вместе с join`ом получать системный статус пользователя и сначала обрабатывать статус, а потом принимать решение что делать с пользователем и данными полученными в этом запросе. Плюсы первого способа: Легкость реализации, минимизация нагрузки на бд, экономия байтов (байты перерастают в килобайты, кбт в мегабайты, мгб в гигабайты). Минусы первого способа: Я вижу только один минус - лишний ЗАПРОС, не коннект, а именно запрос к бд. Плюсы второго способа: не вижу. (или не хочу видеть). Минусы второго способа: Чуток усложненные запросы к бд, чуток сложнее обработка статуса (хотя имеено в обработке статуса нет никакой сложности, сложность скорее состоит в получении этого самого статуса из бд). Лишний трафик. Что значит "усложнение кода" во втором варианте: нужно исправлять, дописывать, переписывать некоторые запросы чтобы вместе с данными получать статус пользователя. А если следовать первому способу, то пишу всего лишь одну функцию и включаю ОДНУ строчку в функцию проверки состояния кук (включены ли куки) у клиента. Все. Я скорее всего буду реализовывать первый способ. Кто что думает об этом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.05.2016, 23:31
|
|||
|---|---|---|---|
Один лишний запрос или все в куче (оптимизация)? |
|||
|
#18+
Пользователь в данном случае - не учётная запись сервера MySQL, а просто абстрактная запись некоей внутренней таблицы БД? Ну коли так - то при начальной аутентификации либо открывайте сессию и волоките её за собой, либо давайте отлуп... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.05.2016, 23:49
|
|||
|---|---|---|---|
Один лишний запрос или все в куче (оптимизация)? |
|||
|
#18+
Заблокирован системой - простой пользователь забанен на сайте модератором или администратором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.05.2016, 23:51
|
|||
|---|---|---|---|
Один лишний запрос или все в куче (оптимизация)? |
|||
|
#18+
AkinaПользователь в данном случае - не учётная запись сервера MySQL, а просто абстрактная запись некоей внутренней таблицы БД? Ну коли так - то при начальной аутентификации либо открывайте сессию и волоките её за собой, либо давайте отлуп... То есть ПЕРВЫЙ вариант более предпочтительней? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.05.2016, 07:31
|
|||
|---|---|---|---|
Один лишний запрос или все в куче (оптимизация)? |
|||
|
#18+
Первый способ проще и экономичнее. Кроме того, пользователь может проявлять активность несколько раз в минуту, а блокировка учётной записи администрацией - штука довольно редкая. В этом смысле в ряде случаев можно вообще обойтись без дополнительного запроса к БД, если, например, некоторое время хранить статус пользователя в мемкеше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1831725]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 485ms |

| 0 / 0 |
