Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1017 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] - [MySQL] - Optimisation de SELECT COUNT(*)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] - [MySQL] - Optimisation de SELECT COUNT(*)

n°204069
Zero Cool
D'abord arrêter le chimique...
Posté le 28-08-2002 à 16:56:15  profilanswer
 

Tchüss tlm,
 
A votre avis, quelle méthode est la plus rapide pour connaître le nombre de records d'une table :
 
- faire un "SELECT COUNT(*)" directement
 
ou
 
- faire un select sur le + petit champ (en taille) de la table, puis un mysql_num_rows ??
 
Je me tâte ...


---------------
"D'abord arrêter le chimique, et après reprendre l'école ..."  
mood
Publicité
Posté le 28-08-2002 à 16:56:15  profilanswer
 

n°204072
--greg--
Posté le 28-08-2002 à 16:58:14  profilanswer
 

count
 
déjà dit 100fois
 
et tu pouvais aussi betement essayeR...


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°204077
Zero Cool
D'abord arrêter le chimique...
Posté le 28-08-2002 à 17:01:10  profilanswer
 

--greg-- a écrit a écrit :

count
déjà dit 100fois




 
tu rigoles j'ai trouvé que dalle sur le forum
 

--greg-- a aussi écrit a écrit :

 
et tu pouvais aussi betement essayeR...




 
bah ouaip mais la différence se voit pas trop à l'oeil nu :D


Message édité par Zero Cool le 28-08-2002 à 17:01:49

---------------
"D'abord arrêter le chimique, et après reprendre l'école ..."  
n°204080
--greg--
Posté le 28-08-2002 à 17:06:35  profilanswer
 

Zero Cool a écrit a écrit :

 
tu rigoles j'ai trouvé que dalle sur le forum



ben non je rigole pas.
par contre le moteur de recherche du forum :/
 
 

Zero Cool a écrit a écrit :

bah ouaip mais la différence se voit pas trop à l'oeil nu :D


ben, tu boucles 500fois sur la meme solution en faisant des mesures de temps d'execution de ton script et basta...


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°204082
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-08-2002 à 17:09:11  profilanswer
 

count(clé) est pas plus rapide que count(*) par hasard ?

n°204089
Zero Cool
D'abord arrêter le chimique...
Posté le 28-08-2002 à 17:11:33  profilanswer
 

antp a écrit a écrit :

count(clé) est pas plus rapide que count(*) par hasard ?




Euh non justement ça ça compte que les distincts je crois !


---------------
"D'abord arrêter le chimique, et après reprendre l'école ..."  
n°204090
--greg--
Posté le 28-08-2002 à 17:11:45  profilanswer
 

antp a écrit a écrit :

count(clé) est pas plus rapide que count(*) par hasard ?



count(*) utilise pas la clé primaire par hasard? :)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°204096
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-08-2002 à 17:15:51  profilanswer
 

j'en sais rien, c'était plus une question qu'une affirmation :ange:

n°204098
--greg--
Posté le 28-08-2002 à 17:16:40  profilanswer
 

antp a écrit a écrit :

j'en sais rien, c'était plus une question qu'une affirmation :ange:



pareil pour moi :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°204110
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-08-2002 à 17:26:06  profilanswer
 

:lol:

mood
Publicité
Posté le 28-08-2002 à 17:26:06  profilanswer
 

n°204178
Dost67
Posté le 28-08-2002 à 18:09:34  profilanswer
 

SELECT COUNT(*) FROM matable retourne la valeur Rows de SHOW TABLE STATUS LIKE 'matable' et ne compte pas.
Par conséquent : EXTREMEMENT RAPIDE.

n°1464176
FlorentG
Posté le 24-10-2006 à 15:46:40  profilanswer
 

query cache ?

n°1464189
rocodido
Posté le 24-10-2006 à 15:51:38  profilanswer
 

count(*)

n°1464212
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 24-10-2006 à 16:00:04  profilanswer
 


A l'instar de ton navigateur web qui stocke les images d'un site pour le réafficher plus vite, MySQL stocke les résultats des dernières requetes afin d'afficher plus vite le résultat ;)

n°1464283
anapajari
s/travail/glanding on hfr/gs;
Posté le 24-10-2006 à 16:40:16  profilanswer
 

stats pas à jour?

n°1464285
Djebel1
Nul professionnel
Posté le 24-10-2006 à 16:44:32  profilanswer
 

Dost67 a écrit :

SELECT COUNT(*) FROM matable retourne la valeur Rows de SHOW TABLE STATUS LIKE 'matable' et ne compte pas.
Par conséquent : EXTREMEMENT RAPIDE.


faux pour les tables InnoDB. Il faut alors parcourir l'index de la table. C'est stocké pour les tables MyISAM.

Citation :

InnoDB ne conserve pas de compte interne de ligne pour une table. Cela serait en fait compliqué, à cause du multi-versionnage. Pour traiter une commande SELECT COUNT(*) FROM T, InnoDB doit scanner l'index de la table, ce qui prendra du temps si la table n'est pas enregistrée dans le buffer. Pour accélérer le compte, vous devez créer un compteur de table vous-même, et votre application le modifiera à chaque ajout ou suppression. Si votre table ne change pas souvent, l'utilisation du cache sera une bonne solution. SHOW TABLE STATUS peut aussi être utilisé pour obtenir un décompte approximatif des lignes. See Section 15.12, « Conseils pour l'amélioration des performances InnoDB ».


http://dev.mysql.com/doc/refman/5. [...] tions.html

Message cité 1 fois
Message édité par Djebel1 le 24-10-2006 à 16:48:17
n°1464289
Djebel1
Nul professionnel
Posté le 24-10-2006 à 16:49:29  profilanswer
 

c'est quoi ton histoire de guillemet ?

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] - [MySQL] - Optimisation de SELECT COUNT(*)

 

Sujets relatifs
[Python] Connection a une DB MySQL[PHP] n'avoir que deux chiffre aprés la virgule pour un réel en php
MySQL : Les apostrophes foutent la merde ?Comment éditer la table user de mysql
Mot de Passe,mySQL[PHP & mySQL] Gestion des caractères accentués ?
Paramétrer Apache/Php et SMTP[PHP] generation d image et pb de couleur sous mozilla
MySQL - Date par défaut dans une table 
Plus de sujets relatifs à : [PHP] - [MySQL] - Optimisation de SELECT COUNT(*)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR