Sobes.tech
Middle

Cosa funziona più velocemente: count(*) o count(nome_colonna)?

sobes.tech AI

Risposta dell'AI

N nella maggior parte dei DBMS, count(*) e count(nome_colonna) funzionano con logiche diverse:

  • count(*) conta tutte le righe, comprese quelle in cui i valori delle colonne possono essere NULL.
  • count(nome_colonna) conta solo le righe in cui il valore nella colonna specificata non è NULL.

Per quanto riguarda le prestazioni, count(*) è di solito più veloce o almeno altrettanto veloce, poiché il DBMS non deve verificare i valori in una colonna specifica, ma semplicemente conta le righe. In alcuni motori ottimizzati, count(*) può utilizzare metadati o indici per un conteggio rapido.

Esempio:

SELECT count(*) FROM users; -- conta tutte le righe
SELECT count(email) FROM users; -- conta solo le righe in cui email non è NULL

In breve: se hai bisogno solo del conteggio totale delle righe, è meglio usare count(*), che di solito è più veloce e più preciso.