Mysql
 sql >> Base de données >  >> RDS >> Mysql

COUNT est-il plus rapide que d'extraire les enregistrements et de compter dans le code ?

Si vous savez que vous avez besoin des données, allez-y, extrayez-les et comptez-les dans le code. Cependant, si vous n'avez besoin que du décompte, il est beaucoup plus rapide d'extraire le décompte de la base de données que de récupérer réellement les lignes. De plus, il est de pratique courante de ne tirer que ce dont vous avez besoin.

Par exemple, si vous comptez toutes les lignes d'une table, la plupart des implémentations de base de données n'ont pas besoin d'examiner les lignes. Les tableaux savent combien de lignes ils ont. Si la requête a des filtres dans le where clause et il peut utiliser un index, il n'aura pas besoin de regarder les données des lignes réelles, compte juste les lignes de l'index.

Et tout cela sans compter le moins de données transférées.

Une règle d'or concernant les vitesses de base de données est d'aller de l'avant et de l'essayer par vous-même. Les règles générales ne sont pas toujours un bon indicateur. Par exemple, si la table comportait 10 lignes et seulement quelques colonnes, je pourrais tout de même tirer le tout au cas où j'en aurais besoin, car 2 allers-retours vers la base de données compenseraient le coût de la requête.