поиск полей в большом кол-ве БД

Discussion in 'PHP' started by GreenBear, 18 Aug 2007.

  1. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    в общем суть такая: допустим есть 5к БД мускул
    есть скрипт, суть его такая -
    1. он берет лист всех БД, доступных пользователя.
    2. в цикле перебирает БД и достает оттуда таблицы.
    3. из таблиц достает поля. Потом в цикле их перебирает. если есть соответствие в названии поля , то выводит результат.

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

    кто решал подобные проблемы.. можно ли как?
     
  2. inv

    inv Banned

    Joined:
    3 Aug 2007
    Messages:
    261
    Likes Received:
    143
    Reputations:
    -58
    ты не пробовал обрабатывать отдельно каждую таблицу?
    while()
    {
    работа только с одной таблицей и ее данными и только в этом цикле.....или я тя не правильно понял
    }
    или проблема не в этом?или это бред)
     
  3. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    >>2. в цикле перебирает БД
    >>но если их много - жопа полная.
    не понимаю о какой нагрузке идет речь
     
  4. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    сложи БД, таблицы, поля...
     
  5. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    они и идут в обработку по порядку. 1 таблица 1 бд, 2 таблица 1 бд,... 20 таблица 4000 бд.
     
  6. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Т.е ищем конкретное называние поля и надо на выходе получить название базы и таблицы в ней? или вывести все значения совпавшего поля из всех таблиц и баз в один список? Так?
     
  7. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    если поле совпало, то мне нужно название таблицы, бд и самого поля.
    это то ерунда.. у меня проблема с тем, что она виснет на большом кол-во бд.

    наверное единственное возможное - после перебора 200-400 бд усыплять скрипт на чуть-чуть.
     
    #7 GreenBear, 18 Aug 2007
    Last edited: 18 Aug 2007
  8. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Имхо, чтоб не висло (не было dos) запросами к базам их надо предварительно сдампить в текстовые файлы и осуществлять поиск нужного поля в них...
     
  9. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    дело в том, чтобы их сдапмить - нужно сначала их получить =)
     
  10. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Смысл усыплять скрипт, если идет последовательный перебор, а не распределенный? В чем выражается зависание?
     
  11. FithShist

    FithShist New Member

    Joined:
    26 Dec 2005
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    по возможности делить на массивы, дампить, чтоб работать с минимумом данных в запросах.
     
  12. SQLHACK

    SQLHACK Остались только слоны

    Joined:
    27 Sep 2006
    Messages:
    437
    Likes Received:
    372
    Reputations:
    407
    Если ты запускаешь скрипт непосредственно на сервере и там много места, можно получить названия баз и каждую сдампить в цикле целиком(такой скрипт давно написан), а в файле уже искать и вынимать, имхо херня, ибо бд могут быть больших объёмов, а так же вхождение заданого текста будет и данных которые лежат в таблице.

    Так что тот вариант который ты предложил вначале лучший, как ни крути.

    Кстати, если мускл ветки с Information_schema, то можно заселектить название всех баз и потом делать общий селект всех таблиц, полей и схем из
    HTML:
    INFORMATION_SCHEMA.STATISTICS
     
    _________________________