Dai un'occhiata alla Documentazione di MySQL , sono spiegate le differenze tra questi tipi.
Ma per rispondere alla tua domanda, VARCHAR è un campo di lunghezza definita dall'utente, mentre i campi di testo hanno una dimensione definita dal sistema:
- VarChar [1-qualunque cosa (max a 65535)]
- TinyText 255 (2^8 - 1)
- Testo 65535 (2^16 - 1)
- MediumText 16M (2^24 - 1)
- Testo lungo 4G (2^32 - 1)
Quindi, uso VarChar ogni volta che ho bisogno di un campo più piccolo di 255.