Θα ήθελα να μάθω ποιο είναι το μέγιστο μέγεθος για έναν τύπο VARCHAR της MySQL.
Διάβασα ότι το μέγιστο μέγεθος περιορίζεται από το μέγεθος της γραμμής που είναι περίπου 65k. Προσπάθησα να ορίσω το πεδίο σε varchar(20000)
αλλά λέει ότι αυτό είναι πολύ μεγάλο.
Θα μπορούσα να το ορίσω σε varchar(10000)
. Ποιο είναι το ακριβές μέγιστο που μπορώ να το ορίσω;
Μην ξεχνάτε ότι η MySQL έχει ένα μέγιστο όριο μεγέθους γραμμών Η εσωτερική αναπαράσταση ενός πίνακα της MySQL έχει μέγιστο όριο μεγέθους γραμμής 65.535 bytes, χωρίς να υπολογίζονται οι τύποι BLOB και TEXT. Οι στήλες BLOB και TEXT συνεισφέρουν μόνο 9 έως 12 bytes στο όριο μεγέθους γραμμής επειδή τα περιεχόμενά τους αποθηκεύονται χωριστά από την υπόλοιπη γραμμή. Διαβάστε περισσότερα για Όρια για τον αριθμό στηλών και το μέγεθος γραμμής του πίνακα
Το μέγιστο μέγεθος που μπορεί να καταλάβει μια στήλη, είναι διαφορετικό πριν και μετά την MySQL 5.0.3
Οι τιμές στις στήλες VARCHAR είναι συμβολοσειρές μεταβλητού μήκους. Το μήκος μπορεί να καθοριστεί ως τιμή από 0 έως 255 πριν από τη MySQL 5.0.3 και από 0 έως 65.535 στην έκδοση 5.0.3 και μεταγενέστερες εκδόσεις. Το πραγματικό μέγιστο μήκος μιας VARCHAR στη MySQL 5.0.3 και μεταγενέστερες εκδόσεις εξαρτάται από το μέγιστο μέγεθος γραμμής (65.535 bytes, το οποίο μοιράζονται όλες οι στήλες) και το σύνολο χαρακτήρων που χρησιμοποιείται.
Ωστόσο, σημειώστε ότι το όριο είναι χαμηλότερο εάν χρησιμοποιείτε ένα σύνολο χαρακτήρων πολλών byte όπως το utf8 ή το utf8mb4.
**Χρησιμοποιήστε τύπους TEXT
για να ξεπεράσετε το όριο μεγέθους γραμμής.
Οι τέσσερις τύποι TEXT είναι οι TINYTEXT, TEXT, MEDIUMTEXT και LONGTEXT. Αυτοί αντιστοιχούν στους τέσσερις τύπους BLOB και έχουν τα ίδια μέγιστα μήκη και απαιτήσεις αποθήκευσης.
Περισσότερες λεπτομέρειες για τους τύπους BLOB και TEXT
Ακόμη περισσότερα
Δείτε περισσότερες λεπτομέρειες στο Data Type Storage Requirements, το οποίο ασχολείται με τις απαιτήσεις αποθήκευσης για όλους τους τύπους δεδομένων.
μπορείτε επίσης να χρησιμοποιήσετε MEDIUMBLOB/LONGBLOB ή MEDIUMTEXT/LONGTEXT
Ένας τύπος BLOB στη MySQL μπορεί να αποθηκεύσει έως και 65.534 bytes, αν προσπαθήσετε να αποθηκεύσετε περισσότερα από τόσα δεδομένα, η MySQL θα περικόψει τα δεδομένα. Ο τύπος MEDIUMBLOB μπορεί να αποθηκεύσει έως και 16.777.213 bytes και ο τύπος LONGBLOB μπορεί να αποθηκεύσει έως και 4.294.967.292 bytes.
Μπορείτε να χρησιμοποιήσετε τον τύπο TEXT
, ο οποίος δεν περιορίζεται στα 64KB.