Compte tenu d'une structure de table comme ceci:l'utilisation de LIMIT lors de la recherche par un champ unique
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`)
);
est-il utile à utiliser le mot-clé LIMIT lors de la recherche par nom d'utilisateur, ou est suffisamment intelligent DB de savoir qu'il peut y seulement peut-être un résultat, et donc arrêter de chercher une fois qu'il est trouvé un?
SELECT * FROM `user` WHERE `username` = 'nick';
-- vs --
SELECT * FROM `user` WHERE `username` = 'nick' LIMIT 1;
Mise à jour: Merci pour les réponses, ils ont été instructifs. Il semble que, même si c'est inutile, mettre LIMIT 1
sur la requête ne fait pas de mal, et augmente probablement la lisibilité (vous n'avez pas besoin d'aller regarder dans le schéma DB pour savoir qu'un seul sera retourné). Shoutout spécial pour la réponse de JR - Je ne savais même pas que vous pourriez le faire avec des indices.
En outre, il y a une question similaire, j'ai trouvé here, qui pourrait également aider.
:-D "devrait" est agréable mais pas une réponse –