Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Про запросы к базе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
antobra
Отправлено: 06 Декабря, 2010 - 20:02:14
Post Id


Посетитель


Покинул форум
Сообщений всего: 327
Дата рег-ции: Окт. 2010  


Помог: 1 раз(а)




Многим известно, что кол-во запросов к базе делает нагрузку. А что если после авторизации пользователя делать запись всех необходимых данных пользователя в сессию.
Например, сделали авторизацию и тут же записываем:

PHP:
скопировать код в буфер обмена
  1. $_SESSION[login] = $bd[login];
  2. $_SESSION[email] = $bd[email];


а потом где нужно вывести эти данные, то выводим их из сессии.
Второй вопрос, сколько можно создавать переменных в сессиях? и третий вопрос: запись и чтение сессий создает нагрузку на сервер?

Заранее спасибо за потраченное время!

(Отредактировано автором: 06 Декабря, 2010 - 20:23:28)

 
 Top
OrmaJever Модератор
Отправлено: 06 Декабря, 2010 - 20:51:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




antobra пишет:
А что если после авторизации пользователя делать запись всех необходимых данных пользователя в сессию.

Это будет работать быстрее чем в каждом скрипте выборка с базы, но эти переменые будут забивать память на сервере. Если почещаемость не большая то можно и так делать.
antobra пишет:
Второй вопрос, сколько можно создавать переменных в сессиях?

Сесия это простой масив. Создавайте сколько хотите.
antobra пишет:
третий вопрос: запись и чтение сессий создает нагрузку на сервер?

Нагрузку на сервер создаёт всё. Главный вопрос на сколько ли она велика?
Нет сесии особой нагрузки не дадут, но как было сказано выше память будет забиватся.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
antobra
Отправлено: 06 Декабря, 2010 - 21:37:23
Post Id


Посетитель


Покинул форум
Сообщений всего: 327
Дата рег-ции: Окт. 2010  


Помог: 1 раз(а)




а нагрузку можно определить по времени загрузки страницы? так скажем косвенный индикатор)

"чем дольше грузится, значит тем больше нагрузка"
 
 Top
Мелкий Супермодератор
Отправлено: 06 Декабря, 2010 - 21:46:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




antobra, ну если сделать пару сотен одновременных запросов - то да, можно определить.


-----
PostgreSQL DBA
 
 Top
OrmaJever Модератор
Отправлено: 06 Декабря, 2010 - 22:46:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




antobra пишет:
а нагрузку можно определить по времени загрузки страницы?

В самом начале скрипта поставьте

и самом конце скрипта
PHP:
скопировать код в буфер обмена
  1. $end = microtime(true);
  2. $time = ($end - $start) * '1000';
  3. $round = round($time, 0);

И внизу страницы покажется время загрузкив милисекундах.
Но как сказал Мелкий разница очень маленькая и заметить сложно.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Phantik
Отправлено: 07 Декабря, 2010 - 09:32:33
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Мне кажется что сессии реализованные по умолчанию это большая нагрузка на хард. Головки винта будут прыгать по мелким файлам и при большом количестве запросов, тормозить будет из-за диска. Хотя если хранение сессий реализовать на оперативке, то, наверно, будет достигнут хороший результат, по сравнению с файлами или БД.

Хотя, мне лично, сложно представить задачу, где скрипт обратился бы к базе 1 раз и дальше работает только с сессиями.
 
 Top
antobra
Отправлено: 07 Декабря, 2010 - 15:26:47
Post Id


Посетитель


Покинул форум
Сообщений всего: 327
Дата рег-ции: Окт. 2010  


Помог: 1 раз(а)




Phantik пишет:


Хотя, мне лично, сложно представить задачу, где скрипт обратился бы к базе 1 раз и дальше работает только с сессиями.


Если нужно отображение только нескольких данных, типа логин, пароль, e-mail и т.п., то зачем каждый раз при обновлении страницы запрашивать в базу, когда можно вызывать их из сессии. База разгружена, а сервер напрягся... но тут уже зависит от мощностей сервера.
 
 Top
umka
Отправлено: 07 Декабря, 2010 - 15:49:55
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Информация в БД тоже хранится в файлах.
И сессии в файлах.
При определённых условиях и таблички БД, и мелкие файлики (например, сессии) попадают в память (в оперативу или в кэш контроллера).
Поэтому, однозначный ответ на вопрос "как лучше?" могут дать только сравнительные тесты + замеры памяти + замеры iowait. На большИх нагрузках.

(Отредактировано автором: 07 Декабря, 2010 - 15:51:03)

 
 Top
antobra
Отправлено: 07 Декабря, 2010 - 19:34:11
Post Id


Посетитель


Покинул форум
Сообщений всего: 327
Дата рег-ции: Окт. 2010  


Помог: 1 раз(а)




umka, ага!


не представляю кол-во серверов таких сайтов как google.com, facebook.com... это сколько ж надо мощности обрабатывает такие потоки)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB