pour un STOCKAGE INNODB Il est préférable de compter le nombre total d'enregistrements par
Utilisation ou par p> récupérant la matrice et récupérez la valeur "totale" de p>
? p> p> mysql_num_rows code> sur p>
4 Réponses :
Ce dernier est le plus susceptible de mieux fonctionner depuis que vous ne transmettez qu'un seul entier alors que, dans le premier scénario, vous envoyez une augmentation de plusieurs données. P>
MySQL ne transmet pas réellement de données avant d'appeler mysql_fetch_array code>
Donc, dans ce cas, pourquoi n'est-ce pas le premier mieux?
MySQL aura toujours les résultats de la requête tamponnés d'une manière ou d'une autre jusqu'à ce que les données soient complètement récupérées.
Absolument ce dernier. Il peut saisir la valeur directement à partir de l'indice de PK, tandis que le premier nécessite presque certainement une analyse de table (sauf si chaque colonne em> fait partie d'un index; et même alors, il doit saisir des valeurs de partout les index). Ensuite, en fonction de la façon dont vous vous connectez à la base de données, il existe une grande quantité de transit de données pour obtenir un compte. P>
expliquer code> peut aider ici. Dans ce cas, il vous dira que le SELECT est optimisé. P>
En plus de la réponse de ZXPRO, il existe également l'effort interne MySQL: force mysql pour récupérer physiquement les lignes de correspondance physiquement; alors que p> permet à MySQL de compter les entrées dans la clé primaire, sans récupérer aucune ligne de table p> p>
Si "PK" est la clé principale, il ne peut y avoir qu'un enregistrement, la réponse va donc être 0 ou 1, de sorte que vous n'avez pas vraiment besoin de les compter de toute façon. P>
mais oui, ce dernier. p>
InnoDB n'a pas seulement besoin de vérifier l'index, il doit également vérifier que la ou les lignées sont visibles pour la transaction en cours, à cause de MVCC. Mais c'est un détail. Il utilisera un index de couverture quand même (qui n'est pas pertinent si Pk est la clé primaire, comme cela est toujours groupé) p>