par
Hubert Roksor » 15 nov. 2007, 18:41
on utilise la fonction mysql_num_rows()
Euh, en fait non, on l'utilise pas

Je sais que c'est un exemple qu'on voit partout sur les sites de débutants, mais c'est une très mauvaise pratique. Certains conseilleront d'utiliser
FOUND_ROWS(), c'est une solution généralement meilleure, même si ce n'est pas systématiquement
la meilleure (sur les très gros résultats notamment).
Concernant la pagination, en principe c'est sensé donner de meilleures performances. En pratique, c'est plutôt le contraire car elle est rarement implémentée dans cette optique. Implémenter une pagination réellement performante est généralement bien plus complexe, donc pour beaucoup de gens ça n'en vaut pas vraiment le coup (tout le monde n'a pas des millions d'enregistrements dans ses tables

).
même avec COUNT cette recherche sur l'ensemble des enregistrements est quand même effectuée
Pas si la requête n'a besoin que des indexes. (autrement dit, pas de "ALL" dans
EXPLAIN)
Si tu as un exemple concret on peut en discuter.
Si vous avez besoin de lecture :
http://ww.mysqlperformanceblog.com/