Привет! Как долго будет выполняться SQL запрос к базе данных MySQL на выборку одной записи из миллиона (сервак на среднестатистическом хостинге)? SQL запрос вида: Просто для себя интересно. Также, как можно оптимизировать выполнение SQL запросов?
Все зависит от сервера. Думаю, в большинстве случаев будет очень даже быстро. (если не как из бд с 10 записями...). Не вижу причины, почему бы ему "тормозить", он ведь вытягивает всего одну запись из памяти, а не листает 999 999 записей до нее .
Почему же не листает? Сервер ищет запись, в которой field равняется 1234. Если у меня поиск производится за значением, которое не является примари, скорость значительно упадет?
Он ее не "ищет", он её просто вытягивает... Ну т.е. ищет, но это трудно назвать "поиском". Он ограничивается вытягиванием соответствующего значения... Мысль изложить не удается нормально . Вообщем, представь себе что тебя попросили взять зеленую ручку из портфеля, не думаю, что ты будеш ее искать под кроватью среди красных карандашей, и только потом заглянешь в портфель. Ты сразу полезешь в портфель, за той ручкой, о которой тебе именно сказали...
Если where что-то=чему-то, то на это "что-то" следует добавить индекс. Если where что-то=чему-то and еще_что-то=еще_чему-то, то, возможно, стоит добавить парный индекс.
а если в портфеле миллион ручек ? Правильно ли считать что если ID это примари или просто key то такую выборку можно сравнить с "взять i-й элемент массива". Мы не будем перебирать все элементы сравнивая их позицию с i, мы просто возьмем элемент (первый_элемент+i)