Visualizzazione dei risultati da 1 a 5 su 5

Discussione: COUNT(*) vs COUNT(id)

  1. #1
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767

    COUNT(*) vs COUNT(id)

    Sto imprementando una funzione generica per contare le righe risultanti da una query e quindi mi va bene utilizzare COUNT(*) perchè a priori non so a quale tabella farò riferimento e quindi come si chiameranno i campi.

    C'è qualche differenza di performace con COUNT(id)?

    A "naso" credo di no, ma non ho trovato info al riguardo.

  2. #2
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    ho trovato anche COUNT(1)

    Cambia qualcosa?

  3. #3
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60

    Re: COUNT(*) vs COUNT(id)

    Originariamente inviato da Luke70
    Sto imprementando una funzione generica per contare le righe risultanti da una query e quindi mi va bene utilizzare COUNT(*) perchè a priori non so a quale tabella farò riferimento e quindi come si chiameranno i campi.

    C'è qualche differenza di performace con COUNT(id)?

    A "naso" credo di no, ma non ho trovato info al riguardo.
    ho studiato i database alle superiori e anche secondo me non ci sono differenze...
    l'unico dubbio che mi è venuto in mente e che restituire strane cose se la tabella è vuota...Mi sembrebbe strana :master: quindi confermo nessuna differenza

  4. #4
    Non c'è sostanziale differenza fra COUNT(id) e COUNT(*).

    Non ti accorgeresti minimamente della differenza nemmeno su 1 milione di righe. Parliamo di millesimi di secondo.

    L'ottimizzatore del MySQL fa un gran bel lavoro quando conta le righe. Lui considera tutte le colonne SOLO se lo reputa necessario, poiché qualche valore di qualche colonna può essere NULL, e dunque non sarà conteggiato. Quindi automaticamente lui conteggerà la colonna con tutti i valori diversi da NULL.

    Chiederai: allora a cosa serve il COUNT(colonna)?
    Se tu vuoi contare tutti i valori diversi da NULL di una colonna allora userai la funzione COUNT(colonna), ma se vuoi sapere solo il numero di righe totali di una tabella usa il COUNT(*) tranquillamente perché al resto ci pensa lui

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Hai fatto la stessa domanda anche nella sezione database. Il crossposting è vietato.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.