Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 17091|Απάντηση: 3

[Πηγή] Χρησιμοποιήστε το guid ως πρωτεύον κλειδί και το int ως σύγκριση απόδοσης πρωτεύοντος κλειδιού

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 9/10/2019 4:48:35 μ.μ. | | | |
Στο σχεδιασμό της βάσης δεδομένων, χρησιμοποιούμε συχνά το guid ή το int ως κύριο κλειδί και σύμφωνα με τις γνώσεις που έχουμε μάθει, πάντα πιστεύαμε ότι το int είναι πιο αποτελεσματικό ως κύριο κλειδί, αλλά είναι αδύνατο χωρίς προσεκτική δοκιμή

Εξηγήστε τον λόγο. Έτυχε κατά τη βελτιστοποίηση της βάσης δεδομένων σήμερα, να αντιμετωπίσω αυτό το πρόβλημα, οπότε έκανα μια δοκιμή.

Περιβάλλον δοκιμής:

Επιτραπέζιος υπολογιστής Pentiun(R) 4 CPU 3.06GHz
Κερδίστε XP επαγγελματικά
1.5G DDR RAM
SQL Server 2005 Personal  


Διαδικασία δοκιμής:

Αρχικά, δημιουργήστε μια δοκιμαστική βάση δεδομένων,

Τα αποτελέσματα των δοκιμών είναι τα εξής:



Όπως αναφέρθηκε παραπάνω, η αποτελεσματικότητα της χρήσης του int ως πρωτεύοντος κλειδιού βελτιώνεται σε σύγκριση με τη χρήση του guid ως κύριου κλειδιού, ειδικά όταν υπάρχει ερώτημα σύνδεσης και διαγραφή εγγραφών.

Επιπλέον, στο ερώτημα δεδομένων με το κύριο κλειδί στο GUID σήμερα, το χρονικό όριο του ερωτήματος παρουσιάστηκε επανειλημμένα λόγω της ένθεσης πολλών αποτελεσμάτων δευτερεύοντος ερωτήματος. Επομένως, είμαι υπέρ της χρήσης του int ως κύριου κλειδιού και δεν συμφωνώ με το guid ως κύριο κλειδί.
Οι παραπάνω απόψεις αντιπροσωπεύουν προσωπικές απόψεις και ο καθένας είναι ευπρόσδεκτος να εκφράσει τις απόψεις του και να εξηγήσει τα πλεονεκτήματα και τα μειονεκτήματα του guid και του int ως το κύριο κλειδί.

Δοκιμές παρακολούθησης:


Μετά από υπενθύμιση από τα αδέρφια, ένα μη ομαδοποιημένο ευρετήριο προστέθηκε σε δύο υποπίνακες σήμερα:

ΔΗΜΙΟΥΡΓΊΑ ΜΗ ΟΜΑΔΟΠΟΙΗΜΈΝΟΥ ΕΥΡΕΤΗΡΊΟΥ Index_Detail_Guid στο Test_Guid_Detail(Guid)
ΔΗΜΙΟΥΡΓΊΑ ΜΗ ΟΜΑΔΟΠΟΙΗΜΈΝΟΥ ΕΥΡΕΤΗΡΊΟΥ Index_Detail_id στο Test_Int_Detail(αναγνωριστικό)
Στη συνέχεια, διεξήγαγα ένα ερώτημα εσωτερικής σύνδεσης και διαπίστωσα ότι όπως είπε @Xu Shaoxia, η αποτελεσματικότητα δεν είναι πράγματι αρκετά προφανής ώστε να δείχνει περισσότερο από 50%, και βασικά μόνο περίπου 23% βελτίωση, κάτι που εξακολουθεί να είναι αποδεκτό.

Ως εκ τούτου, συνιστάται

1. Σε συστήματα που συχνά χρειάζεται να κάνουν μετεγκατάσταση δεδομένων, συνιστάται η χρήση του Guid. Και η προσθήκη μη ομαδοποιημένων ευρετηρίων στα αντίστοιχα πεδία ξένου κλειδιού, δηλαδή πεδία που χρησιμοποιούνται για ερωτήματα σύνδεσης, είναι πολύ ωφέλιμη για τη βελτίωση της απόδοσης. Το πεδίο της συνθήκης where μπορεί επίσης να προστεθεί ανάλογα με την περίπτωση για μη ομαδοποιημένα ευρετήρια.

2. Όταν χρησιμοποιείτε τον τύπο Guid ως πρωτεύον κλειδί, ο τύπος δεδομένων θα πρέπει να είναι uniqueidentifier και φροντίστε να θυμάστε να ακυρώσετε το "συγκεντρωτικό ευρετήριο" του πρωτεύοντος κλειδιού

3. Για συστήματα που δεν χρειάζονται μετεγκατάσταση ή μικρά συστήματα, εξακολουθεί να είναι πολύ βολικό να χρησιμοποιείτε το int ως πρωτεύον κλειδί και εξακολουθεί να υπάρχει κάποια βελτίωση στην απόδοση.





Προηγούμενος:A182 Wu Xiaobo "Λευκή Βίβλος για τη Νέα Μεσαία Τάξη 2019"
Επόμενος:Μια συλλογή από τους πιο πρόσφατους πόρους της Λέσχης Ανάγνωσης Fan Deng
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 8/2/2021 11:03:12 π.μ. |
δοκιμή
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 8/2/2021 11:03:31 π.μ. |

Δημοσιεύτηκε στις 20/3/2025 4:13:51 μ.μ. |
Η μετεγκατάσταση πρωτεύοντος κλειδιού INT δεν αποτελεί μεγάλο πρόβλημα, εφόσον το πρωτεύον κλειδί INT ακυρώνεται προσωρινά κατά τη μετεγκατάσταση και, στη συνέχεια, ανοίγει την αυτοαύξηση μετά τη μετεγκατάσταση
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com