Domanda

Possibile duplicato:
In SQL, qual è la differenza tra conteggio (colonna) e conteggio ()?
Contare(
) vs conte (1)

Ho grandi tabelle che mantengono i testi lunghi, ad esempio contenuti o notizie e -mail. E la mia domanda è qualche differenza per le prestazioni per il conteggio delle righe della tabella:

SELECT COUNT(*) FROM table_name

SELECT COUNT(t.id) FROM table_name as t

Qual è il migliore? O quest'ultimo verrà ottimizzato da Query Optimizer? C'è qualche documentazione al riguardo?

È stato utile?

Soluzione

Sono diversi.

COUNT(*) recupererà tutti i valori (anche il NULL conta dei valori).COUNT(t.id) non conta il NULL i valori.


In termini di prestazioni, sono gli stessi (l'ottimizzatore di query è intelligente).

Altri suggerimenti

Il piano di query sembra lo stesso, ma nei test, usando * è più veloce (leggermente).

Tuttavia, i null non tengono conto quando specificano un nome di colonna.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top