Ποια είναι η διαφορά μεταξύ του VARCHAR και του TEXT στην MySQL;


Απάντηση 1:

TEXT έχει σταθερό μέγιστο μέγεθος 2¹⁶-1 = 65535 χαρακτήρες. Το VARCHAR έχει ένα μεταβλητό μέγιστο μέγεθος M έως το M = 2¹⁶-1.

Η άλλη διαφορά είναι ότι δεν μπορείτε να βάλετε ένα ευρετήριο (εκτός από ένα δείκτη πλήρους κειμένου) σε μια στήλη TEXT. Επομένως, αν θέλετε να έχετε ένα ευρετήριο στη στήλη, πρέπει να χρησιμοποιήσετε το VARCHAR.

ανατρέξτε σε αυτό για περισσότερα - Διαφορά μεταξύ VARCHAR και TEXT στο mysql


Απάντηση 2:

Όπως επισημαίνεται, έχουν διαφορετικά μήκη. Αλλά εσωτερικά η διαφορά είναι σημαντική.

Για τους περισσότερους τύπους, όλα τα δεδομένα για κάθε σειρά αποθηκεύονται μαζί. Οι μεγαλύτεροι τύποι: κηλίδα και κείμενο, αποθηκεύονται ξεχωριστά. Αυτό σημαίνει ότι υπάρχει επίδραση επίδοσης.

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

Εάν κάνετε ευρετηρίαση των κειμένων κειμένου, μπορείτε να χρησιμοποιήσετε ένα πρόθεμα. Αυτοί οι δείκτες παρακολουθούν μόνο τους πρώτους χαρακτήρες Χ στη στήλη. Διαφορετικά, στις περισσότερες βάσεις δεδομένων πιθανότατα θέλετε να χρησιμοποιήσετε ένα ξεχωριστό εργαλείο ευρετηρίασης όπως το Elastic. Αυτά είναι πολύ γρηγορότερα από τον εσωτερικό κινητήρα για MySQL και πιθανόν άλλους. Μπορείτε να χρησιμοποιήσετε τον εσωτερικό κινητήρα φυσικά, είναι ένα εμπόριο από την απόδοση και την απλότητα.


Απάντηση 3:

TEXT έχει καθορισμένο μέγιστο μέγεθος 65535 χαρακτήρων. Αυτό το μέγιστο μέγεθος δεν μπορεί να είναι περιορισμένο. Το TEXT παίρνει 2 + n byte χώρου στο δίσκο, όπου n είναι το μήκος της αποθηκευμένης συμβολοσειράς. Για παράδειγμα μια λέξη 10 λέξεων θα πάρει 12 byte χώρου. Επίσης, ο τύπος δεδομένων TEXT δεν μπορεί να αποτελεί μέρος ενός ευρετηρίου στην MySQL.

Το VARCHAR έχει μεταβλητό μέγεθος με μέγιστο όριο 65535 χαρακτήρων. Το VARCHAR καταλαμβάνει 1 + n byte (για μήκος ≤ 255) και 2 + n (για 256 ≤ μήκος <65535) χώρου στο δίσκο όπου n είναι το μήκος της αποθηκευμένης συμβολοσειράς. Επίσης, ο τύπος δεδομένων VARCHAR μπορεί να είναι μέρος και ευρετήριο της MySQL.