Учитывая структуру таблицы, как это:Использование LIMIT при поиске по уникальной области
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(32) NOT NULL,
`username` varchar(16) NOT NULL,
`password` char(32) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
);
Есть ли польза в использовании LIMIT ключевого слова при поиске по имени пользователя, или БД достаточно умен, чтобы знать, что может возможно, только один результат, и поэтому прекратите поиск, как только он будет найден?
SELECT * FROM `user` WHERE `username` = 'nick';
-- vs --
SELECT * FROM `user` WHERE `username` = 'nick' LIMIT 1;
Update: Спасибо за ответы, они были поучительным. Кажется, что, даже если это не нужно, вопрос LIMIT 1
в запросе не повредит и, вероятно, увеличивает читаемость (вам не нужно заглядывать в схему БД, чтобы знать, что только один будет возвращен). Специальный крик для ответа JR - я даже не знал, что вы можете сделать это с помощью индексов.
Кроме того, есть аналогичный вопрос, который я нашел here, что также может помочь.
:-D «должно» приятно, но не ответ – 2011-07-27 10:42:43