Будет ли запрос выполняться быстрее, если по логике мне нужно выбрать одну запись по условию и я применю оператор LIMIT 1? Т.е.: [sql]SELECT * FROM `my_table` WHERE `id` = ID;[/sql] Или [sql]SELECT * FROM `my_table` WHERE `id` = ID LIMIT 1;[/sql] Будет ли выигрыш в скорости?
нет. еще это иногда применяют для защиты от мусора в базе, чтобы показывалась последняя актуальная, но тогда надо использовать order by
А почему нет? Не логично ли, если уже найдена строка соответствующая WHERE, и она одна (LIMIT 1) - то нет смысла дальше искать записи.
Смотря какой столбец. Если UNIQUE или PRIMARY (где уникальный по дефолту), то после выбора первой записи поиск будет остановлен. В других случаях - нет. ИМХО.
Ногами. Создаешь базу на 10-100млн записей И гоняешь тестовые запросы с лимитом и без. По полю с ключем, без ключа, по составному ключу.
Зачем? Для таких проверок достаточно базу из 2х записей. Только проверять как - не пойму. По хэндлерам что-ли?
Не увидишь ты ничего на 2х записях. Там даже на 11к записях ничего почти не видно А проверять explain и profile