Condividi
Dimensione massima VARCHAR in MySql?
Sarei curioso di sapere qual'è la dimensione massima (max size) per il tipo VARCHAR per un datatabase MySQL.
Ho letto che il limite max di dimensioni per una riga (row) è di circa 65k. Ho cercato di settare il campo come varchar(20000), ma ho ricevuto il messaggio che dice che è troppo largo. Qual'è allora l'esatta o meglio la massima dimensione per il tipo VARCHAR?
In Corso
5
MySql
10-09-2019
2 Risposte
2085 Visite
+3
Risposte ( 2 approvate )
La lunghezza massima del tipo varchar è soggetta al limite max di riga (row) previsto per MySQL, il quale è di 64Kb (non considerando in questo limite i BLOBs ed i TEXT).
Se tu provi a settare VARCHAR(65535) devi considerare comunque che questo non è il valore massimo, o il numero massimo di caratteri ammissibili, il limite sarà molto probabilmente più basso poiché ad esempio stai utilizzando un insieme di caratteri (charset) multi-byte come ad es:
VARCHAR(21844) CHARACTER SET utf8
La rappresentazione interna di una tabella MySQL ha un limite di dimensione massima di riga (row) di 65,535 bytes (65Kb), a questi devi escludere i tipi BLOB e TEXT poiché le colonne definite con questi tipi particolari occupano dai 9 ai 12 bytes, perchè il loro contenuto (data) sono memorizzate separatamente dal resto delle altre righe.
Le colonne dichiarate come VARCHAR sono stringhe di lunghezza variabile. La lunghezza massima per ogni campo (colonna) può essere specificata con un valore interdo che va da 0 a 255 sino alla versione MySQL 5.0.3, e da 0 a 65,535 per le versioni successive. L'effettiva lunghezza massima di un VARCHAR in MySQL è soggetta al maximum row size (65,535 bytes) e dal set di caratteri (character set) usato.
Se la tua necessità è quella di superare il limite max di dimensione rappresentabile con un VARCHAR, ti consiglio di usare un tipo TEXT.