SQL Ottimizzazione del conteggio delle righe [duplicato
-
28-10-2019 - |
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?
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.