Char εναντίον Varchar
Οι Char και Varchar είναι τύποι δεδομένων χαρακτήρων που χρησιμοποιούνται συνήθως στο σύστημα βάσης δεδομένων που μοιάζουν παρόμοιοι, αν και υπάρχουν διαφορές μεταξύ τους όσον αφορά τις απαιτήσεις αποθήκευσης. Στο σχεδιασμό της βάσης δεδομένων, χρησιμοποιούνται πολλοί τύποι δεδομένων. Από αυτούς, οι τύποι δεδομένων χαρακτήρων αποκτούν πιο περίοπτη θέση καθώς χρησιμοποιούνται για την αποθήκευση πολλών πληροφοριών σε σύγκριση με αριθμούς. Οι τύποι δεδομένων χαρακτήρων χρησιμοποιούνται για την αποθήκευση χαρακτήρων ή αλφαριθμητικών δεδομένων σε συμβολοσειρές. Ο τύπος του συνόλου χαρακτήρων βάσης δεδομένων ορίζεται κατά τη δημιουργία της βάσης δεδομένων. Και πάλι, από αυτούς τους τύπους δεδομένων χαρακτήρων, οι Char και Varchar είναι οι συνήθως χρησιμοποιούμενοι. Αυτό το άρθρο εξηγεί τι είναι αυτοί οι δύο τύποι δεδομένων, char και varchar, και η διαφορά μεταξύ τους.
Τι είναι ο Χαρ;
Ο ορισμός ISO του char είναι ένας χαρακτήρας και ο τύπος δεδομένων char χρησιμοποιείται για την αποθήκευση ενός χαρακτήρα. Ο χαρακτήρας (n) μπορεί να αποθηκεύσει n σταθερό μέγεθος χαρακτήρων. Ο μέγιστος αριθμός χαρακτήρων που μπορεί να χωρέσει ένας χαρακτήρας (n) είναι 255 χαρακτήρες και το μήκος συμβολοσειράς πρέπει να είναι μια τιμή από 1 έως 8000. Το Char είναι πενήντα τοις εκατό ταχύτερο από το varchar και, επομένως, μπορούμε να έχουμε καλύτερη απόδοση όταν εργαζόμαστε με απανθρακώνω. Το Char χρησιμοποιεί εκχώρηση στατικής μνήμης κατά την αποθήκευση δεδομένων. Όταν θέλουμε να αποθηκεύσουμε χορδές με γνωστό σταθερό μήκος, είναι προτιμότερο να χρησιμοποιούμε το char. Για παράδειγμα, κατά την αποθήκευση των «Ναι» και «Όχι» ως «Υ» και «Ν», μπορούμε να χρησιμοποιήσουμε τον τύπο δεδομένων char. Επίσης, όταν αποθηκεύουμε τον αριθμό της εθνικής ταυτότητας ενός ατόμου με δέκα χαρακτήρες, μπορούμε να χρησιμοποιήσουμε τον τύπο δεδομένων ως χαρακτήρες (10).
Τι είναι το Varchar;
Όπως υποδηλώνει το όνομα, το varchar ονομάζεται μεταβλητός χαρακτήρας. Το Varchar χρησιμοποιείται για την αποθήκευση αλφαριθμητικών δεδομένων που έχουν μεταβλητά μήκη. Ο μέγιστος αριθμός χαρακτήρων που μπορεί να χωρέσει αυτός ο τύπος δεδομένων είναι 4000 χαρακτήρες και το μέγιστο μέγεθος αποθήκευσης είναι 2 GB. Το μέγεθος αποθήκευσης του varchar είναι το πραγματικό μήκος των δεδομένων συν δύο byte. Το Varchar είναι πιο αργό από το char και χρησιμοποιεί δυναμική εκχώρηση μνήμης κατά την αποθήκευση δεδομένων. Μπορούμε να χρησιμοποιήσουμε το varchar κατά την αποθήκευση δεδομένων όπως ονόματα, διευθύνσεις, περιγραφές κ.λπ. Όχι μόνο συμβολοσειρές, αλλά και τύποι μη συμβολοσειρών, όπως τύποι ημερομηνίας, "12 Μαρτίου 2015", "2015-03-12" μπορούν επίσης να αποθηκευτούν σε ο τύπος δεδομένων varchar.
Ποια είναι η διαφορά μεταξύ Char και Varchar;
• Αν και ο char και το varchar είναι πεδία δεδομένων χαρακτήρων, το char είναι ένα πεδίο δεδομένων σταθερού μήκους και το varchar είναι ένα πεδίο δεδομένων μεταβλητού μεγέθους.
• Το Char μπορεί να αποθηκεύει μόνο χαρακτήρες συμβολοσειρών σταθερού μεγέθους, χωρίς Unicode, αλλά το varchar μπορεί να αποθηκεύει μεταβλητά μεγέθη συμβολοσειρών.
• Το Char είναι καλύτερο από το varchar για δεδομένα που αλλάζουν συχνά. Αυτό συμβαίνει επειδή η σειρά δεδομένων σταθερού μήκους δεν είναι επιρρεπής σε κατακερματισμό.
• Ο χαρακτήρας θα καταλαμβάνει μόνο τον σταθερό χώρο που ορίζεται κατά τη δήλωση της μεταβλητής. Αλλά το varchar θα καταλάβει το χώρο με βάση τα δεδομένα που έχουν εισαχθεί και επίσης θα καταλάβει 1 ή 2 byte ως πρόθεμα μήκους.
• Εάν τα δεδομένα είναι λιγότερα από 255 χαρακτήρες, εκχωρείται 1 byte και εάν τα δεδομένα είναι περισσότερα από 255 χαρακτήρες, δεσμεύονται 2 byte. Εάν χρησιμοποιήσουμε έναν χαρακτήρα για να αποθηκεύσουμε μια σημαία των 'Y' και 'N' θα χρησιμοποιήσει ένα byte για αποθήκευση, αλλά όταν χρησιμοποιούμε varchar θα χρειαστούν δύο byte για την αποθήκευση της σημαίας συμπεριλαμβανομένου ενός επιπλέον byte ως πρόθεμα μήκους.
Σύνοψη:
Char εναντίον Varchar
Οι χαρακτήρες και τα varchar είναι οι πιο χρησιμοποιούμενοι τύποι δεδομένων χαρακτήρων που διατίθενται σε βάσεις δεδομένων. Το Char χρησιμοποιείται για την αποθήκευση μιας συμβολοσειράς με σταθερό μήκος ενώ το varchar χρησιμοποιείται για την αποθήκευση συμβολοσειρών που έχουν διαφορετικό μήκος. Για να έχετε καλύτερη απόδοση από τα δεδομένα, είναι πιο σημαντικό να επιλέξετε τους σωστούς τύπους δεδομένων για τα πεδία των πινάκων στη βάση δεδομένων σας. Είναι πιο βολικό να χρησιμοποιείτε τους μικρότερους τύπους δεδομένων που μπορούν να αποθηκεύσουν σωστά τα δεδομένα, επειδή καταλαμβάνουν λιγότερο χώρο από τη μνήμη.