Πού υπάρχει η απόδοση έναντι της συμμετοχής;
Πού υπάρχει η απόδοση έναντι της συμμετοχής;

Βίντεο: Πού υπάρχει η απόδοση έναντι της συμμετοχής;

Βίντεο: Πού υπάρχει η απόδοση έναντι της συμμετοχής;
Βίντεο: 10 μουσικά όργανα που δε θα πιστεύετε πως υπάρχουν! - Τα Καλύτερα Top10 2024, Απρίλιος
Anonim

Στις περισσότερες περιπτώσεις, ΥΠΑΡΧΕΙ ή ΣΥΜΜΕΤΟΧΗ θα είναι πολύ πιο αποτελεσματική (και πιο γρήγορη) από μια δήλωση IN. Με ένα ΥΠΑΡΧΕΙ ή α ΣΥΜΜΕΤΟΧΗ , η βάση δεδομένων θα επιστρέψει true/false κατά τον έλεγχο της καθορισμένης σχέσης. Εκτός αν ο πίνακας στο υποερώτημα είναι πολύ μικρός, ΥΠΑΡΧΕΙ ή ΣΥΜΜΕΤΟΧΗ θα αποδώσει πολύ καλύτερα από το IN.

Εξάλλου, πού υπάρχει απόδοση έναντι της εσωτερικής ένωσης;

2 Απαντήσεις. Γενικά μιλώντας, ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ και ΥΠΑΡΧΕΙ είναι διαφορετικά πράγματα. Εάν κάνετε ένα εσωτερική σύνδεση σε μια ΜΟΝΑΔΙΚΗ στήλη, παρουσιάζουν το ίδιο εκτέλεση . Εάν κάνετε ένα εσωτερική σύνδεση σε ένα σύνολο εγγραφών με εφαρμογή DISTINCT (για να απαλλαγείτε από τα διπλότυπα), ΥΠΑΡΧΕΙ είναι συνήθως πιο γρήγορο.

Δεύτερον, το LEFT JOIN είναι πιο γρήγορο από το join; ΕΝΑ ΑΡΙΣΤΕΡΑ ΣΥΜΜΕΤΟΧΗ δεν είναι απολύτως ταχύτερα από ένα ΕΣΩΤΕΡΙΚΟ ΣΥΜΜΕΤΟΧΗ . Στην πραγματικότητα, είναι πιο αργό. εξ ορισμού, ένα εξωτερικό Συμμετοχή ( ΑΡΙΣΤΕΡΑ ΣΥΜΜΕΤΟΧΗ ή δεξιά ΣΥΜΜΕΤΟΧΗ ) πρέπει να κάνει όλη τη δουλειά ενός ΕΣΩΤΕΡΙΚΟΥ ΣΥΜΜΕΤΟΧΗ συν την επιπλέον εργασία της μηδενικής επέκτασης των αποτελεσμάτων.

Με αυτόν τον τρόπο, ποιο είναι πιο γρήγορο υπάρχει ή μέσα;

ο ΥΠΑΡΧΕΙ η ρήτρα είναι πολύ γρηγορότερα παρά IN όταν τα αποτελέσματα του δευτερεύοντος ερωτήματος είναι πολύ μεγάλα. Αντίθετα, η ρήτρα IN είναι γρηγορότερα από ΥΠΑΡΧΕΙ όταν τα αποτελέσματα του υποερωτήματος είναι πολύ μικρά. Επίσης, ο όρος IN δεν μπορεί να συγκρίνει τίποτα με τιμές NULL, αλλά το ΥΠΑΡΧΕΙ Ο όρος μπορεί να συγκρίνει τα πάντα με NULL.

Ποιο SQL JOIN είναι πιο γρήγορο;

Λοιπόν, γενικά ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ θα είναι γρηγορότερα επειδή επιστρέφει μόνο τις σειρές που ταιριάζουν σε όλους τους ενωμένους πίνακες με βάση τη συνδεδεμένη στήλη. Αλλά ΑΡΙΣΤΕΡΑ ΣΥΜΜΕΤΟΧΗ θα επιστρέψει όλες τις σειρές από έναν πίνακα που καθορίζεται LEFT και όλες τις αντίστοιχες σειρές από έναν πίνακα που καθορίζεται RIGHT.

Συνιστάται: