Πρόσφατα, η συνάρτηση αριθμών έχει χρησιμοποιηθεί πολύ και όταν ο αριθμός που πρέπει να μετρηθεί είναι σχετικά μεγάλος, διαπιστώνεται ότι το count(*) απαιτεί περισσότερο χρόνο και το count(1) απαιτεί λιγότερο χρόνο.
Ορισμένα έγγραφα έχουν τις ακόλουθες δηλώσεις:
Εάν ο πίνακας δεδομένων σας δεν έχει πρωτεύον κλειδί, τότε το count(1) είναι ταχύτερο από το count(*). Εάν υπάρχει πρωτεύον κλειδί, τότε το πρωτεύον κλειδί (κοινό πρωτεύον κλειδί) είναι επίσης ταχύτερο από το count(*). Εάν ο πίνακάς σας έχει μόνο ένα πεδίο, τότε το count(*) είναι το ταχύτερο count(*) count(1) Συγκρίνετε τα δύο. Το κύριο πράγμα είναι να μετρήσετε τα πεδία δεδομένων που αντιστοιχούν στο (1). Αν το count(1) είναι πολυδείκτης, id, τότε πρέπει να είναι το count(1) πιο γρήγορα. Αλλά η διαφορά είναι πολύ μικρή. Επειδή count(*), το πεδίο βελτιστοποιείται αυτόματα για να καθοριστεί σε. Επομένως, δεν χρειάζεται να μετρήσετε(?), να χρησιμοποιήσετε το count(*), η SQL θα σας βοηθήσει να ολοκληρώσετε τη βελτιστοποίηση
Λεπτομέρειες καταμέτρησης: count(*) θα επιστρέψει τον συνολικό αριθμό όλων των σειρών που υπάρχουν στον πίνακα, συμπεριλαμβανομένων των σειρών με τιμή null,Ωστόσο, το count (όνομα στήλης) θα επιστρέψει τον συνολικό αριθμό όλων των γραμμών στον πίνακα εκτός από το null(Υπολογίζονται επίσης οι στήλες με προεπιλεγμένες τιμές). διακριτό όνομα στήλης, το αποτέλεσμα θα είναι το αποτέλεσμα μετά την κατάργηση της μηδενικής τιμής και των διπλότυπων δεδομένων
Στο παρελθόν, δεν ήξερα ότι το ιστολόγιο έλεγε ότι συνιστάται σε όλους να χρησιμοποιούν το count(0) και ότι η αποτελεσματικότητα του ερωτήματος ήταν σχετικά υψηλή κ.λπ
Σήμερα, έχει διαπιστωθεί ότι η χρήση του count(0) είναι μια εσφαλμένη αντίληψη!!
count(0) Η πρώτη στήλη των στατιστικών δεν είναι κενή
Μην χρησιμοποιείτε αριθμό (όνομα στήλης) ή count (σταθερά) αντί για count (*),
count(*) είναι η σύνταξη για τον τυπικό αριθμό σειρών που ορίζεται από το SQL92, το οποίο δεν έχει καμία σχέση με τη βάση δεδομένων, NULL και non-NULL.
Σημείωση: το count(*) μετράει σειρές με τιμή NULL, ενώ το count(όνομα στήλης) δεν μετράει σειρές με τιμή NULL.
Επομένως, στο μέλλον, όταν κάνετε όλα τα στατιστικά στοιχεία και δεν αποκλείετε κενά δεδομένα, είναι καλύτερο να χρησιμοποιείτε ειλικρινά τον αριθμό (*)!!
|