C'è una differenza tra le seguenti query, supponendo che ci sia un campo primario "id" nella tabella (come nella velocità, ecc.)?COUNT (id) vs. COUNT (*) in MySQL
SELECT COUNT(id)
FROM table
vs.
SELECT COUNT(*)
FROM table
C'è una differenza tra le seguenti query, supponendo che ci sia un campo primario "id" nella tabella (come nella velocità, ecc.)?COUNT (id) vs. COUNT (*) in MySQL
SELECT COUNT(id)
FROM table
vs.
SELECT COUNT(*)
FROM table
Dai un'occhiata alla Count(*) vs Count(col) a www.mysqlperformanceblog.com, che discutere di questo argomento di vari tipi 'col' (NOT NULL o meno, con l'indice, ecc) e questo per le tabelle MyISAM e InnoDB.
So che la domanda è su MySQL, ma per quello che vale, count (*) è consigliato per Oracle: che mostra che questo è specifico del database (vedi commento sopra di BalusC). Poiché molti database (MS-SQL, MySQL) hanno tabelle di schemi di informazioni che contengono vari tipi di metadati, ci sono inevitabili differenze se una sintassi sta semplicemente cercando un valore prontamente disponibile, e un altro sta andando direttamente al tavolo . Alla fine della giornata: prova diverse opzioni, e vedi cosa SPIEGARE ti sta dicendo che sta succedendo dietro le quinte.
Mi sembra sempre di più che la strada da percorrere sia o usare un ORM (e sperare che si ottimizzi per tutti i casi), o scrivere SQL esattamente per * un motore di database * e dimenticare il resto. –
Count (*) Count (Ename) può mostrare diff perché Ename non è una colonna con vincolo non nullo e sicuramente avere alcuni valori nulli che non vengono contati.
Spero che aiuti ..!
Si può guardare su queste discussioni http://stackoverflow.com/questions/1221559/count-vs-count1 http://stackoverflow.com/questions/433913/in-sql-is-there-a-difference- tra-count-and-countfieldname http://stackoverflow.com/questions/59294/in-sql-whats-the-difference-between-countcolumn-and-count –