Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MySQL тормозит или Я
 
 автор: Олег5687   (26.07.2007 в 14:52)   письмо автору
 
 

for(int n5=0; ; n5++) {
if(mysql_real_connect(/*тут стандартные данные в основном нули*/) {
/*тут вообще ничего нет*/
//сразу же завершим работу
mysql_close( myData ) ;
} else {
//примерно когда n5==2000 мы заходим сюда и больше подключатся не хотим
int kkkk=0;
}
}
?????????????????????????????????????????????????????????????????????

   
 
 автор: Trianon   (26.07.2007 в 14:56)   письмо автору
 
   для: Олег5687   (26.07.2007 в 14:52)
 

Вы.
Как минимум потому, что не объяснили, что это за функция mysql_real_connect()

   
 
 автор: Faraon   (26.07.2007 в 15:00)   письмо автору
 
   для: Олег5687   (26.07.2007 в 14:52)
 

Да и вот эту строчку прокоментируйте

for(int n5=0; ; n5++) {

   
 
 автор: SHAman   (26.07.2007 в 15:02)   письмо автору
 
   для: Олег5687   (26.07.2007 в 14:52)
 

если я правильно понимаю, то вы В ЦИКЛЕ ПОДКЛЮЧАЕТЕСЬ К БД? Если это так, то это пипец. Подключаться нужно один раз, и отключаться тоже. (если, конечно, база одна). По ходу, у вас сервер держит 2000 подключений. Естественно, что больше он держать не хочет. Наверняка, в настройках стоит предел подключений равный 2000:)

   
 
 автор: Олег5687   (26.07.2007 в 15:11)   письмо автору
 
   для: SHAman   (26.07.2007 в 15:02)
 

mysql_real_connect это функция подключения к серверу mysql. Я действительно в цикле подключаюсь к сервере, но после каждого подключения отключаюсь - mysql_close. Я отдельно запускал программу-скрипт для web сервера, тоже после определенного количества запусков перестает подключаться. Как же мне сервер делать? У меня 500 человек зайдут, а остальным что, лапу сосать?

   
 
 автор: Олег5687   (26.07.2007 в 15:14)   письмо автору
 
   для: SHAman   (26.07.2007 в 15:02)
 

mysql_real_connect это функция подключения к серверу mysql. Я действительно в цикле подключаюсь к сервере, но после каждого подключения отключаюсь - mysql_close. Я отдельно запускал программу-скрипт для web сервера, тоже после определенного количества запусков перестает подключаться. Как же мне сервер делать? У меня 500 человек зайдут, а остальным что, лапу сосать?
Если что у меня Windows XP, MySQL 4.XXX, пробовал и MySQL 5.xxxx

   
 
 автор: Trianon   (26.07.2007 в 15:23)   письмо автору
 
   для: Олег5687   (26.07.2007 в 15:14)
 

что именно делает функция mysql_real_connect?
Какие функции вызывает?

   
 
 автор: Олег5687   (26.07.2007 в 15:30)   письмо автору
 
   для: Trianon   (26.07.2007 в 15:23)
 

mysql_real_connect и mysql_close функции из библиотеки mysql. mysql_real_connect - подключение к серверу-базе данных, mysql_close - отключение.

   
 
 автор: Trianon   (26.07.2007 в 15:36)   письмо автору
 
   для: Олег5687   (26.07.2007 в 15:30)
 

не порите чушь.
Fatal error: Call to undefined function mysql_real_connect() in z:\home\localhost\www\Test\a\shoptree\xxxx.php on line 11

   
 
 автор: Олег5687   (26.07.2007 в 15:51)   письмо автору
 
   для: Trianon   (26.07.2007 в 15:36)
 

mysql_real_connect из С++ библиотеки.

   
 
 автор: Trianon   (26.07.2007 в 16:00)   письмо автору
 
   для: Олег5687   (26.07.2007 в 15:51)
 

На php две функции - mysql_pconnect - установка постоянного соединения в любом случае - скорее всего обложка к mysql_real_connect
Этой функцией пользоваться в web-приложениях категорически не рекомендуется.
и mysql_connect - установка соединения лишь в случае необходимости - с возвратом дескриптора уже установленного соединения, если таковое есть и наращиванием семафора использования дескриптора. Вот это обычно и применяют.
Соответственно mysql_close - уменьшает семафор использования дескриптора. И вырубает соединение лишь тогда, когда пользоваться им некому.

А пятьсот человек у Вас одновременно не зайдут.
Точнее - как зайдут - так и выйдут. Скрипты-то исполняются мгновенно.

   
 
 автор: Олег5687   (26.07.2007 в 16:23)   письмо автору
 
   для: Trianon   (26.07.2007 в 16:00)
 

Я конечно не знаю ... но во всех учебниках и примерах, по использованию MySQL в С++, делают так как я написал.

   
 
 автор: Trianon   (26.07.2007 в 16:41)   письмо автору
 
   для: Олег5687   (26.07.2007 в 16:23)
 

Имеет смысл продублировать вопрос в ветви c/cpp

   
 
 автор: Олег5687   (26.07.2007 в 17:10)   письмо автору
 
   для: Trianon   (26.07.2007 в 16:41)
 

Еще раз попробовал, до mysql_close( myData ) количество потоков на сервере 1 после mysql_close( myData ) количество потоков 0.

for(int n5=0; ; n5++) {
if(mysql_real_connect(myData, StaticConnectClass->host(), StaticConnectClass->user(), StaticConnectClass->passwd(), StaticConnectClass->db(), StaticConnectClass->port(), StaticConnectClass->unix_socket(), StaticConnectClass->client_flag())) {
MYSQL_RES *r0=mysql_list_processes(myData);
if(r0->row_count != 1) {
int kkkkk=0;
}
mysql_close( myData ) ;
MYSQL_RES *r1=mysql_list_processes(myData);
int jjj=0;
// mysql_kill(myData, (*myData).thread_id);
} else {
int kkkk=0;
}
}

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования