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]   

> Без описания
DlTA
Отправлено: 25 Апреля, 2014 - 10:39:21
Post Id



Постоянный участник


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


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




кто нить тестировал сколько линков к базе поддержит, и сколько можно в разумнных пределах?


PHP:
скопировать код в буфер обмена
  1. // тут мы делаем делаем подключение к базе
  2. $res1 = mysql_query($reqSQLSelect1);
  3. while($tem1 = mysql_fetch_assoc($res1)){
  4.        
  5.         $res2 = mysql_query($reqSQLSelect2);
  6.         while($tem2 = mysql_fetch_assoc($res2)){
  7.                 // --//-- сколько таких вложенносте можно?
  8.         }
  9.        
  10. }
 
 Top
Мелкий Супермодератор
Отправлено: 25 Апреля, 2014 - 10:54:41
Post Id



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


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


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




Какая взаимосвязь между количеством линков (общеупотребительный смысл - количество открытых соединений) и вложенностью циклов?

По числу соединений не хочу ман пересказывать: https://dev[dot]mysql[dot]com/doc/refman[dot][dot][dot]connections[dot]html
По вложенности циклов - разумеется столько, сколько требуется. Разумные пределы - ни одного, пока не доказана безальтернативность подхода использования запросов в цикле.


-----
PostgreSQL DBA
 
 Top
DlTA
Отправлено: 25 Апреля, 2014 - 11:33:25
Post Id



Постоянный участник


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


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




Мелкий пишет:
Какая взаимосвязь между количеством линков (общеупотребительный смысл - количество открытых соединений) и вложенностью циклов?
не
соединение возвращает mysql_connect(), и оно теоретически будет 1
вопрос именно в количестве открытых рессурсов(дескриптор) возвращаемых mysql_query() при запросе на выборку

так вот вопрос в том сколько одновременно используемых дескрипторов можно поддерживать?
(Добавление)
небольшое тестирование:
на локальной машине, при 1 пользаке под виндой)

вот код
PHP:
скопировать код в буфер обмена
  1.  
  2. $idList = array(38247, 38248, 38249, 38250);
  3. $itrList = array();
  4.  
  5. for($i=0; $i<1500;$i++){
  6.         shuffle($idList);
  7.         $listReqId = array_slice($idList,0,2);
  8.         var_dump($listReqId);
  9.         // запрос из таблицы goods, полей id, title; по списку id
  10.         $itrList[] = CDB::rowsIterator('goods', $listReqId, array('id', 'title'));
  11. }
  12. echo "<pre>";
  13. print_r($itrList);
  14.  
  15. foreach($itrList[50] as $data){
  16.         print_r($data);
  17. }
  18.  

в деструкторе итератора стоит вывод для мониторинга выполнения

так вот результ: первые 1483 дескриптора открваются относительно быстро, остальные с тормозами, но так же открываются, и взятый случайным образом дескриптор так же отработал, а вот закрываются дескрипторы медленно, скрипт работает только 60 сек, и закрыться успели только первые 56 штук, точнее инфа об этом попала в вывод.
(Добавление)
в общем ничего не изменил, кроме места вызова диструктора, еще при выполнении
код (Отобразить)

код выполняется +- 1 секунду, при 2 одновременных запросах к серверу (2 страницы в браузере)
(Добавление)
увеличил до 10 000
время создания и последующее закрытие активных дескрипторов колеблится от 10 до 15 секунд, при 5 запросах(страницах браузера)


дык где же эти разумные пределы?
 
 Top
OrmaJever Модератор
Отправлено: 25 Апреля, 2014 - 13:40:57
Post Id



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


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


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




DlTA пишет:
дык где же эти разумные пределы?

разумные пределы 1-2 вложенных цикла и то если без них реально никуда, других разумных пределов быть не может. Если у тебя получается иначе значит нужно пересмотреть архитектуру бд или логику кода.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DlTA
Отправлено: 25 Апреля, 2014 - 13:44:46
Post Id



Постоянный участник


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


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




OrmaJever пишет:
Если у тебя получается иначе значит нужно пересмотреть архитектуру бд или логику кода.
ребята, суть темы в том чтоб определиться с пределами, и уже на основе этого чет конструировать

OrmaJever пишет:
разумные пределы 1-2 вложенных цикла и то если без них реально никуда, других разумных пределов быть не может
ну в теории примерно столько и будет активных дескривторов, пример с десятком тысяч это тестовый.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB