次のようなテーブル構造があるとします。
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 キーワードを使用することに意味はありますか、それとも DB は結果が 1 つしかない可能性があることを認識できるほど賢いので、結果が見つかったら検索を停止しますか?
SELECT * FROM `user` WHERE `username` = 'nick';
-- vs --
SELECT * FROM `user` WHERE `username` = 'nick' LIMIT 1;
更新:回答ありがとうございます。彼らは啓発的でした。不要でLIMIT 1
はありますが、クエリを実行しても害はなく、おそらく読みやすさが向上するようです (1 つだけが返されることを知るために DB スキーマを調べる必要はありません)。JRの答えに対する特別な叫び声-インデックスでそれができることさえ知りませんでした。
また、ここで見つけた同様の質問があり、これも役立つ場合があります。