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

Άποψη: 3812|Απάντηση: 2

[Πηγή] [Turn] (MSSQL) Βάση δεδομένων SQL Server int και guid για σύγκριση πρωτεύοντος κλειδιού

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 6/6/2023 10:17:40 μ.μ. | | |
απαιτήσεις: Κατά τη διάρκεια μιας πρόσφατης συνέντευξης, ρωτήθηκα ποια είναι η διαφορά μεταξύ του SQL Server βάση δεδομένων int και guid ως κύριο κλειδί.Και τα δύο έχουν πλεονεκτήματα και μειονεκτήματα, ζυγίστε τα σύμφωνα με τα πραγματικά επιχειρηματικά σας σενάρια

Πρωτότυπο κείμενο 1Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Πλεονεκτήματα της χρήσης του INT ως πρωτεύοντος κλειδιού:

1. Απαιτεί μικρό χώρο αποθήκευσης δεδομένων, μόνο 4 byte.

2. Η απόδοση της χρήσης INT για λειτουργίες εισαγωγής και ενημέρωσης είναι καλύτερη από αυτή του GUID, επομένως η χρήση int θα βελτιώσει την απόδοση της εφαρμογής.

3. Λειτουργίες ευρετηρίου και συμμετοχής, το int έχει την καλύτερη απόδοση.

4. Εύκολο να θυμάστε.

5. Υποστήριξη για τη λήψη της πιο πρόσφατης τιμής μέσω μιας συνάρτησης, όπως: Scope_Indentity().

Μειονεκτήματα της χρήσης του INT ως πρωτεύοντος κλειδιού

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

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

3. Είναι δύσκολη η επεξεργασία κατανεμημένων αποθηκευμένων πινάκων δεδομένων.

Πλεονεκτήματα της χρήσης του GUID ως πρωτεύοντος κλειδιού:

1. Είναι μοναδικό.

2. Υπάρχουν λίγες ευκαιρίες για επικάλυψη.

3. Είναι κατάλληλο για λειτουργίες εισαγωγής και ενημέρωσης σε μεγάλο όγκο δεδομένων.

4. Η συγχώνευση δεδομένων μεταξύ διακομιστών είναι πολύ βολική.

Μειονεκτήματα της χρήσης του GUID ως πρωτεύοντος κλειδιού:

1. Ο αποθηκευτικός χώρος είναι μεγάλος (16 byte), επομένως θα καταλαμβάνει περισσότερο μέγεθος δίσκου.

2. Είναι δύσκολο να θυμηθείς. Η απόδοση της λειτουργίας σύνδεσης είναι χαμηλότερη από αυτή του int.

3. Δεν υπάρχει ενσωματωμένη λειτουργία για τη λήψη του πιο πρόσφατου πρωτεύοντος κλειδιού GUID που δημιουργήθηκε.

4. Το GUID ως πρωτεύον κλειδί θα προστεθεί σε άλλα ευρετήρια στον πίνακα, επομένως θα μειώσει την απόδοση.

Περίληψη:

Τα παραπάνω παραθέτουν τα πλεονεκτήματα και τα μειονεκτήματα των τύπων δεδομένων GUID και INT ως πρωτεύοντα κλειδιά. Νομίζω ότι για μεγάλους όγκους δεδομένων, συνιστάται η χρήση του guid ως πρωτεύοντος κλειδιού. ενώΗ χρήση του int θα σας δώσει την καλύτερη απόδοση


Σχόλιο: ΧρήσηΗ απόδοση του GUID που παραγγέλθηκε βελτιώνεται πολύ

Πρωτότυπο κείμενο δύοΗ σύνδεση με υπερσύνδεσμο είναι ορατή.

Η ταυτότητα είναι ένας ολόκληρος τύπος τύπου, δεκαδικός χωρίς δεκαδικό ορισμό, το bigint είναι αποδεκτό

Το guid είναι σταθερό δυαδικό(16), το οποίο είναι 16 byte

Η ταυτότητα αυξάνεται (ή αφαιρείται) και το GUID είναι τυχαίο, οπότε καθώς εισάγονται δεδομένα,Το πρώτο δεν θα παράγει θραύσματα, ενώ το δεύτερο θα παράγει, και επειδή το δεύτερο είναι εκτός λειτουργίας, η σειρά πρέπει να προσαρμοστεί όταν εισάγεται, επομένως το πρώτο είναι γενικά καλύτερο από το δεύτερο όσον αφορά την απόδοση.

Ένας μεγάλος όγκος πληροφοριών συνήθως χωρίζεται σε πίνακες, επομένως η ταυτότητα εξακολουθεί να είναι πιο κατάλληλη σε πολλές περιπτώσεις

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

Αρχικό κείμενο τρίαΗ σύνδεση με υπερσύνδεσμο είναι ορατή.

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

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

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

(Τέλος)




Προηγούμενος:ASP.NET Πυρήνας (20) Αποτρέψτε τις επιθέσεις ανοιχτής ανακατεύθυνσης
Επόμενος:Πρόγραμμα .NET Core πολύγλωσσα αρχεία πόρων ανάγνωσης και εγγραφής (.resx)
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 6/6/2023 10:42:46 μ.μ. |
Το SequentialGuidValueGenerator δημιουργεί διαδοχικές τιμές Guid που είναι βελτιστοποιημένες για χρήση με κλειδιά συμπλέγματος ή ευρετήρια του Microsoft SQL Server, με αποτέλεσμα καλύτερες επιδόσεις από τις τυχαίες τιμές. Αυτό είναι το προεπιλεγμένο σύνολο γεννήτριας για τη δημιουργία στηλών SQL Server Guid όταν προστίθενται.

Η σύνδεση με υπερσύνδεσμο είναι ορατή.


Τα διαδοχικά GUID στον πυρήνα του Entity Framework ενδέχεται να μην είναι διαδοχικά

Η σύνδεση με υπερσύνδεσμο είναι ορατή.
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 27/1/2024 11:07:29 π.μ. |
[MSSQL] Ο SQL SERVER παρήγγειλε GUID και μη ταξινομημένα GUID ως δοκιμές ευρετηρίου συνάθροισης πρωτεύοντος κλειδιού
https://www.itsvse.com/thread-10607-1-1.html
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com