Διαφορές μεταξύ Varchar και Nvarchar Διαφορά μεταξύ
Varchar vs Nvarchar
Το Varchar είναι ένα σύντομο όνομα για το μεταβλητό πεδίο χαρακτήρων. Οι χαρακτήρες αντιπροσωπεύουν δεδομένα που έχουν απροσδιόριστο μήκος. Το Varchar στην πραγματική έννοια είναι ένας τύπος στήλης δεδομένων που βρίσκεται στα συστήματα διαχείρισης βάσεων δεδομένων. Το μέγεθος πεδίου των στηλών Varchar μπορεί να ποικίλει, ανάλογα με τη βάση δεδομένων που εξετάζεται.
Στο Oracle 9i, το πεδίο έχει μέγιστο όριο 4000 χαρακτήρων. Η MySQL έχει ένα όριο δεδομένων 65, 535 για μια σειρά και ο διακομιστής Microsoft SQL 2005 έρχεται με ένα όριο πεδίου 8000. Αυτός ο αριθμός μπορεί να πάει ψηλότερος στο διακομιστή Microsoft SQL όταν χρησιμοποιείται Varchar (max), ανεβαίνοντας σε 2 gigabytes. Το Nvarchar, από την άλλη πλευρά, είναι μια στήλη που μπορεί να αποθηκεύσει οποιοδήποτε μήκος δεδομένων Unicode. Η κωδικοσελίδα που πρέπει να τηρεί η Nvarchar είναι κωδικοποίηση 8 bit. Το μέγιστο μέγεθος για το Varchar είναι 8000 ενώ το μέγιστο μέγεθος για το NVarchar είναι 4000. Αυτό σημαίνει ότι μία στήλη του Varchar μπορεί να έχει μέγιστο αριθμό χαρακτήρων 8000 χαρακτήρων και μια μόνο στήλη του Nvarchar μπορεί να έχει μέγιστο αριθμό χαρακτήρων 4000 χαρακτήρων. Η υπέρβαση των τιμών στήλης γίνεται τεράστιο πρόβλημα και μπορεί να προκαλέσει σοβαρά προβλήματα, καθώς οι σειρές δεν μπορούν να εκτείνονται σε πολλαπλές σελίδες, με εξαίρεση τον SQL Server 2005, και ο περιορισμός πρέπει να τηρηθεί ή να προκύψουν σφάλματα ή αποκοπή …
Μία από τις κύριες διαφορές μεταξύ του Varchar και του Nvarchar είναι η χρήση λιγότερου χώρου στο Varchar. Αυτό οφείλεται στο γεγονός ότι η Nvarchar χρησιμοποιεί το Unicode, το οποίο, εξαιτίας της ταλαιπωρίας της κωδικοποίησης των ειδικών, καταλαμβάνει περισσότερο χώρο. Για κάθε αποθηκευμένο χαρακτήρα, το Unicode απαιτεί δύο byte δεδομένων και αυτό μπορεί να προκαλέσει την εμφάνιση της τιμής δεδομένων σε μεγαλύτερο βαθμό σε σύγκριση με τα δεδομένα Unicode που χρησιμοποιεί το Varchar. Ο Varchar, από την άλλη πλευρά, απαιτεί μόνο ένα byte δεδομένων για κάθε χαρακτήρα που αποθηκεύεται. Ωστόσο, το πιο σημαντικό, αν και η χρήση του Unicode καταλαμβάνει περισσότερο χώρο, επιλύει προβλήματα που προκύπτουν με ασυμβατότητες κωδικοσελίδων που είναι ένας πόνος που πρέπει να επιλυθεί με το χέρι.
Έτσι, το χαρακτηριστικό διαστήματος μπορεί να αγνοηθεί κατά προτίμηση για το μικρότερο χρονικό διάστημα που χρειάζεται το Unicode για να διορθώσει τις προκύπτουσες ασυμβατότητες. Επίσης, το κόστος των δίσκων και της μνήμης έχει γίνει αρκετά προσιτό, διασφαλίζοντας ότι το χαρακτηριστικό διαστήματος μπορεί συχνά να παραβλεφθεί, ενώ ο μεγαλύτερος χρόνος που χρειάζεται για την επίλυση των προβλημάτων που δημιουργούνται με το Varchar δεν μπορεί να απορριφθεί τόσο εύκολα.
Όλες οι πλατφόρμες ανάπτυξης χρησιμοποιούν εσωτερικά λειτουργικά συστήματα, επιτρέποντας στο Unicode να λειτουργεί. Αυτό σημαίνει ότι η Nvarchar απασχολείται συχνότερα από τον Varchar. Οι μετατροπές κωδικοποίησης αποφεύγονται, μειώνοντας τον χρόνο που χρειάζεται για να διαβάσετε και να γράψετε στη βάση δεδομένων. Αυτό επίσης μειώνει σημαντικά τα σφάλματα, με την ανάκτηση των σφαλμάτων μετατροπής που συμβαίνουν να γίνονται ένα απλό ζήτημα για την αντιμετώπιση.
Το όφελος από τη χρήση του Unicode ισχύει και για άτομα που χρησιμοποιούν διασυνδέσεις εφαρμογών ASCII, καθώς η βάση δεδομένων ανταποκρίνεται καλά, ιδιαίτερα το λειτουργικό σύστημα και οι αλγόριθμοι συνασφάλισης βάσης δεδομένων. Τα δεδομένα Unicode αποφεύγουν προβλήματα που σχετίζονται με τη μετατροπή και τα δεδομένα μπορούν πάντοτε να επικυρώνονται, αν περιορίζονται σε ASCII 7 bit, ανεξάρτητα από το σύστημα παλαιού τύπου που πρέπει να διατηρηθεί.Περίληψη
Οι Varchar και Nvarchar προέρχονται από διαφορετικούς τύπους χαρακτήρων. Το Varchar χρησιμοποιεί δεδομένα που δεν είναι Unicode ενώ η Nvarchar χρησιμοποιεί δεδομένα Unicode.
Και οι δύο Varchar και Nvarchar έχουν διαφορετικούς τύπους δεδομένων που πρέπει να τηρούνται. Το Varchar αποθηκεύει μόνο δεδομένα με 1 ακολουθία byte και το Nvarchar αποθηκεύει δεδομένα σε 2 byte για κάθε χαρακτήρα
Το μέγιστο μήκος ποικίλει επίσης. Το μήκος Varchar περιορίζεται σε 8000 bytes και το όριο για το Nvarchar είναι 4000 byte.
Αυτό οφείλεται στο γεγονός ότι το μέγεθος αποθήκευσης στο Varchar είναι πιο απλό, σε αντίθεση με τα δεδομένα Unicode που χρησιμοποιεί η Nvarchar.