Как долго будет выполняться SQL запрос к БД?

Discussion in 'PHP' started by Chrome~, 16 Nov 2010.

  1. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    937
    Likes Received:
    162
    Reputations:
    27
    Привет!
    Как долго будет выполняться SQL запрос к базе данных MySQL на выборку одной записи из миллиона (сервак на среднестатистическом хостинге)?

    SQL запрос вида:
    Просто для себя интересно. Также, как можно оптимизировать выполнение SQL запросов?
     
  2. DeepBlue7

    DeepBlue7 Elder - Старейшина

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    Все зависит от сервера. Думаю, в большинстве случаев будет очень даже быстро. (если не как из бд с 10 записями...). Не вижу причины, почему бы ему "тормозить", он ведь вытягивает всего одну запись из памяти, а не листает 999 999 записей до нее :) .
     
    #2 DeepBlue7, 16 Nov 2010
    Last edited: 16 Nov 2010
  3. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Очень быстро выполнится, особенно если id - primary или имеет индекс.
     
    1 person likes this.
  4. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    937
    Likes Received:
    162
    Reputations:
    27
    Почему же не листает? Сервер ищет запись, в которой field равняется 1234.
    Если у меня поиск производится за значением, которое не является примари, скорость значительно упадет?
     
  5. DeepBlue7

    DeepBlue7 Elder - Старейшина

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    Он ее не "ищет", он её просто вытягивает... Ну т.е. ищет, но это трудно назвать "поиском". Он ограничивается вытягиванием соответствующего значения...

    Мысль изложить не удается нормально :rolleyes: .

    Вообщем, представь себе что тебя попросили взять зеленую ручку из портфеля, не думаю, что ты будеш ее искать под кроватью среди красных карандашей, и только потом заглянешь в портфель. Ты сразу полезешь в портфель, за той ручкой, о которой тебе именно сказали...
     
    #5 DeepBlue7, 16 Nov 2010
    Last edited: 16 Nov 2010
    1 person likes this.
  6. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Если where что-то=чему-то, то на это "что-то" следует добавить индекс.
    Если where что-то=чему-то and еще_что-то=еще_чему-то, то, возможно, стоит добавить парный индекс.
     
  7. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    а если в портфеле миллион ручек ?
    Правильно ли считать что если ID это примари или просто key то такую выборку можно сравнить с "взять i-й элемент массива". Мы не будем перебирать все элементы сравнивая их позицию с i, мы просто возьмем элемент (первый_элемент+i)
     
  8. IGL

    IGL New Member

    Joined:
    16 Nov 2007
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    вроде запрос будет выполнятся пока выполняется скрипт... имхо