Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сколько времени занимает подключение к MySQL-базе? 
:(
    Опции темы
Wolf1994
Дата 28.7.2005, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 7
Всего: 29



Сегодня решил оптимизировать сайт. Потратил часа 4 на убирание ненужных коннектов к MySQL-базе. Но неуверен - стоило ли это делать... Какой выигрыш в производильности будет если вместо 3-9 (сделал так когда-то по неопытности smile ) коннектов будет использоваться 1? Или всё зависит от хостинга?
PM MAIL WWW   Вверх
Mont
Дата 28.7.2005, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Vingrad developer
Сообщений: 274
Регистрация: 13.11.2004
Где: Altay

Репутация: 8
Всего: 12



от многих факторов зависит - и от посещаемости (частоте обращения к базе) и от хостинга.

а вообще, имхо, быстрее один коннект - не надо будет каждый раз стоять в очереди на подключение.


--------------------
"Если однажды Вдруг
Меня не окажется вовсе
в заповедной заветной тарелке
Твоего праведного сновидения
Знай - Неуловимые мстители настигли меня."
© Егор Летов
PM MAIL ICQ   Вверх
Mal Hack
Дата 28.7.2005, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Wolf1994 @ 28.7.2005, 21:08)
Какой выигрыш в производильности будет если вместо 3-9 (сделал так когда-то по неопытности smile ) коннектов будет использоваться 1? Или всё зависит от хостинга?

выигрыш в любом случае колоссальный smile
Но на самом деле это зависит от сред передачи данных у хостера, лишних устройств на пути сигналов, да и нагрузка сервера.
PM ICQ   Вверх
o.s.a.
Дата 29.7.2005, 06:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 2
Всего: 15



Значит нужно один раз законниктиться к базе, а потом, например, через куки или сессию, передавать идентификатор соединения?


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Wolf1994
Дата 29.7.2005, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 7
Всего: 29



Нет. По закрытиии страницы автоматически выполняется команда "mysql_close();". Никакие сессии здесь не помогут. Просто у меня подключались к базе множество includов - я не знал что можно выполнить одно подключение...
PM MAIL WWW   Вверх
Bikutoru
Дата 29.7.2005, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 8
Всего: 22



Цитата
Значит нужно один раз законниктиться к базе, а потом, например, через куки или сессию, передавать идентификатор соединения?

Нет, для этого есть команда mysql_pconnect(), которая один раз коннектится к базе и удерживает это соединение в течение определенного времени (сколько именно зависит от настроек, обычно несколько минут). При очередной использовании этой команды PHP не подключается заново, а ищет существующее соединение и если находит, то использует его.

Ложка дёгтя: есть мнение, что при большой нагрузке на базу именно из-за mysql_pconnect появляются спящие запросы...

Это сообщение отредактировал(а) Bikutoru - 29.7.2005, 09:59


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Mal Hack
Дата 29.7.2005, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(o @ 29.7.2005, 07:59)
Значит нужно один раз законниктиться к базе, а потом, например, через куки или сессию, передавать идентификатор соединения?

Мне вот интересно как ты указатель на память будешь в GET передавать smile

Цитата(Bikutoru @ 29.7.2005, 10:58)
Ложка дёгтя: есть мнение, что при большой нагрузке на базу именно из-за mysql_pconnect появляются спящие запросы...

Это все фигня, на самом деле...
Проблема в том, что при постоянном соединении уходит время на поиск этого соединения, а как следствие при их обльшом числе скрипт будет дольше выполняться.
Еще проблема в переборе постоянно открытых соединений.
PM ICQ   Вверх
o.s.a.
Дата 29.7.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 2
Всего: 15



Цитата
Мне вот интересно как ты указатель на память будешь в GET передавать

Код

 $a = mysql_connect();

Вот $a бы и передавал smile

Цитата
По закрытиии страницы автоматически выполняется команда "mysql_close();"

А если переход от одной страницы к другой? То же самое?


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Mal Hack
Дата 29.7.2005, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(o @ 29.7.2005, 16:31)
А если переход от одной страницы к другой? То же самое?

Да.

Цитата(o @ 29.7.2005, 16:31)
Вот $a бы и передавал smile

Ты хоть знаешь что такое указатель?

Сессии сохраняют только строковые параметры, а не бинарные данные. Открой в любом текстовике файл сессии и все поймешь smile
PM ICQ   Вверх
Bikutoru
Дата 29.7.2005, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 8
Всего: 22



Цитата

Код

 $a = mysql_connect();

Вот $a бы и передавал  smile

Идея хороша, но вот только соединение с базой прерывается по окончании выполнения скрипта вне зависимости от того, использовал ты mysql_close или не использовал. Следовательно идентификатор ресурса (читай указатель) не несет никакой смысловой нагрузки. В этом легко убедиться:
Код

    $db = mysql_connect($host, $user, $pass);
    mysql_select_db($name, $db);
    echo "{" . $db . "}";
    mysql_close($db);
    echo "{" . $db . "}";
    mysql_query("SHOW VARIABLES", $db);

Цитата

Проблема в том, что при постоянном соединении уходит время на поиск этого соединения, а как следствие при их обльшом числе скрипт будет дольше выполняться.
Еще проблема в переборе постоянно открытых соединений.

А есть ссылкочка, где это можно прочитать?



--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Mal Hack
Дата 29.7.2005, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Bikutoru @ 29.7.2005, 16:54)
А есть ссылкочка, где это можно прочитать?

Основано на личном опыте. В свое время выбирал между постоянным и простым соединением и тестил...
PM ICQ   Вверх
Bikutoru
Дата 30.7.2005, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 8
Всего: 22



Цитата
Основано на личном опыте. В свое время выбирал между постоянным и простым соединением и тестил...

Жаль, с интересом почитал бы...


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1513 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.