
Envoy� par
genova
berceker united tu pourrais d�velopper un peu plus l'optimisation du LIMIT + BETWEEN ? Ca m'interesse beaucoup, mais j'ai pas saisi dans l'int�gralit� le raisonement.
Sinon � la question LIMIT = BETWEEN ? Bien sur que non. LIMIT est appliqu� sur le r�sultat, alors que BETWEEN est un filtre et sert donc � calculer le r�sultat.
Le probl�me de BETWEEN, c'est que si par exemple tu as supprim� des entr�es, et que tu as des "trous" dans tes ID, il te renverra moins de r�sultats que pr�vu, alors que LIMIT renverra les X r�sultats que tu demandes.
Lorsqu'il y a une requ�te pouvant retourner plusieurs champs dont les tables poss�de �norm�ment d'enregistrements, l'utilisation d'un LIMIT peut �tre catastrophique point de vue performance. Plus le curseur de d�part du LIMIT s'�loigne du d�but des enregistrements plus les performances se d�grade.
Dans ce genre d'op�ration il faut faire l'op�ration en deux temps.
Premier temps faire une requ�te r�cup�rant que l'id avec le LIMIT.
SELECT id FROM forum LIMIT 65412, 10;
Resultat:
id de 125455 ... 125465
Second temps, avec le jeux de resultat avec juste les id vous faite ceci.
SELECT * FROM forum id BETWEEN 125455 AND 125465
ou
SELECT * FROM forum id IN(125455,125456,125457,...,125465)
Pas de probl�me de trou parce celui sera automatiquement combl� vie le LIMIT qui lui va toujours retourner le m�me nombre de r�sultat sauf � la fin.
Partager