Im Nachgang zu meinem früheren question:Wählen Sie Anzahl (*) vs Wählen Sie Anzahl (ID) vs Anzahl wählen (1). Sind diese in der Tat gleichwertig?
Einige der Antworten und Kommentare deuten darauf hin, dass
select count(*)
-select count(id)
meist gleichwertig ist, wo ID der Primärschlüssel .`
ich immer haben, ist bevorzugt select count(1)
; Ich benutze auch immer if exists (select 1 from table_name)
...
Nun meine Frage:
1) Was ist der optimale Weg, um ein select count query
über eine Tabelle der Ausstellung?
2) Wenn wir eine hinzufügen, wo Klausel: where msg_type = X
; Wenn msg_type
einen Non-Clustered-Index hat, würde select count(msg_type) from table_name where msg_type = X
die bevorzugte Option zum Zählen sein?
Side-Bar:
Von einem sehr frühen Alter wurde ich gelehrt, dass select * from...
ist BAD BAD BAD, ich denke, das hat mich skeptisch select count (*) als auch
Die Optimierer sind heutzutage so weit fortgeschritten, dass wahrscheinlich alle Zählabfragen äquivalent sind. –
@Evgeni guter Punkt –
@CharlesOkwuagwu: Nur zu Ihrer Information, habe ich einen Blog-Post darüber in meinem Blog schreiben - [https://krishnrajrana.wordpress.com/2016/02/16/sql-server-miscondition-about -countcolumnname-vs-count1-vs-count /] (https://krishnrajrana.wordpress.com/2016/02/16/sql-server-miscondition-about-countcolumnname-vs-count1-vs-count/) –