|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 16 ![]() |
Bonjour,
J'ai vu dans une requete un select count(0), etc.. Est ce que quelqu'un saurait ce que count(0) signifie exactement ? Merci par avance |
|
|
00
|
|
|
#2 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
Apres testes, ceci a l'air de faire la même chose qu'un count(*) sauf que lorsqu'il n'y a aucune ligne cela affiche 1.
__________________
![]() ![]() ![]() David55 |
|
|
00
|
|
|
#3 | |
![]() ![]() |
Je n'avais jamais vu ça non plus, mais sur la doc, une personne (Philip Stoev : QA Engineer chez MySQL) à ajouter une note :
Citation:
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoVenez participez au deuxième defi Web !
|
|
|
10
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Avec Oracle, Count(0) c’est un peu de n’importe quoi utilisé par le gens qui sont convaincu qu’il plus performant que count(*)
Citation:
|
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 16 ![]() |
Okay.
Merci pour vos réponses. |
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
Citation:
Il me semble cependant que c'était vraiment plus efficace sur les vieilles version d'Oracle (<7). Ce n'est plus le cas maintenant.
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
|
00
|
|
|
#7 | |||||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 926 ![]() |
alors pour rejouter au mythe :
Il était une fois un rule base optimiseur qui ne faisait que ce qu'on lui demandait. /*+INDEX*/ --> utilise un index /*+FULL*/ --> fait un full table scan COUNT(*) --> conte les lignes COUNT(col1) --> conte le nombre de lignes ou col1 n'est pas nulle COUNT(0) --> conte le nombre de lignes ou l'expression 0 n'est pas nulle Bien sûr les seuls clowns qui faisaient du COUNT(0) ou du COUNT(1) sont ceux qui écoutaient ce que leurs chefs disaient et ne remettait rien en question pour ne pas avoir l'air idiot. COUNT(*) était parfois beaucoup plus performant. Mais souvent à peu près pareil à un COUNT(0) ou à un comme SUM(1) ou à un count(*)+0 si on veut. Plus tard, en 7.3, 8, 9, 10, 11 etc, Oracle a rendu ces bases plus performantes en corrigeant secrètements ces défaut de la pensée ![]() Un exemple que j'adore. Citation:
Code :
Code :
Citation:
COUNT(*) est toujours le même que COUNT(0) Citation:
|
|||||||
|
10
|
|
|
#8 | |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
Citation:
J'ai juste constaté! Voici ce que j'ai fait: Et ceci m'a renvoyé 1. C'est tout
__________________
![]() ![]() ![]() David55 |
|
|
|
00
|
|
|
#9 | |||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Citation:
Code :
Sinon très bon le coup du bitmap laurent
|
|||
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 926 ![]() |
ok, désolé pour la fessée, je ne connais rien à mysql...
|
|
00
|
|
|
#11 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
__________________
![]() ![]() ![]() David55 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com