Ragazzi sono un po' confuso![]()
ma che differenza c'è tra VARCHAR e TEXT dato che tutti e due sono di tipo string ed hanno come lunghezza massima 65535 caratteri?
Grazie
Ragazzi sono un po' confuso![]()
ma che differenza c'è tra VARCHAR e TEXT dato che tutti e due sono di tipo string ed hanno come lunghezza massima 65535 caratteri?
Grazie
Ho visto cose...
beh! in mysql varchar e' piu' modesto. Lascio a te verificare le differenze sul manuale.Originariamente inviato da dantefoxfox
Ragazzi sono un po' confuso![]()
ma che differenza c'è tra VARCHAR e TEXT dato che tutti e due sono di tipo string ed hanno come lunghezza massima 65535 caratteri?
Grazie
http://dev.mysql.com/doc/refman/5.0/...ing-types.html
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
E' proprio quello che ho letto
e questoThe effective maximum length of a VARCHAR in MySQL 5.0.3 and later is subject to the maximum row size (65,535 bytes, which is shared among all columns) and the character set used.
E' per questo che sono confuso.A TEXT column with a maximum length of 65,535 (216 – 1) characters.
Mi puoi almeno fare degli esempi in cui useresti l'uno invece che l'altro?
Scusate l'ignoranza.
Ho visto cose...
Mi pare che sia detto nel manuale che in una tabella la lunghezza "complessiva" di tutti i campi varchar sia di max 65535 (64kb). Intanto sia varchar che text sono campi "dinamici" cioe' occupano solo lo spazio effettivo piu' una manciata di byte che definiscono l'effettiva lunghezza occupata. Si dice pure che lo spazio effettivamente occupato dipenda dal charset usato. Quindi se fosse un charset multibyte cioe' anche 3-4 byte per ogni lettera scritta, lo spazio effettivo non sara' piu' conteggiabile nel numero di lettere che puoi vedere ma dallo spazio effettivamente occupato.
Con varchar "imponi" una lunghezza massima variabile, con text la lunghezza massima raggiungibile e' fissa. Anche gli indici si comportano diversamente (almeno mi pare)Note
The effective maximum number of bytes that can be stored in a VARCHAR or VARBINARY column is subject to the maximum row size of 65,535 bytes, which is shared among all columns. For a VARCHAR column that stores multi-byte characters, the effective maximum number of characters is less. For example, utf8 characters can require up to three bytes per character, so a VARCHAR column that uses the utf8 character set can be declared to be a maximum of 21,844 characters.
per quanto riguarda l'uso... ovviamente dipende dalla tua struttura. Di solito se conosco la lunghezza massima di quanto debbo inserire uso un varchar (es.: un indirizzo, un nominativo) mentre userei text se si trattasse di una descrizione o altro di lunghezza non conosciuta a priori ma che si deve contenere entro una dimensione max fissa.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Oh mille grazieper il chiarimento, almeno so cosa faccio.
Grazie
Ho visto cose...
Ragazzi,una domanda:
Se effettuo addslashes o simili su una stringa lunga quanto la dimensione del varchar (esempio 10 chars), ovviamente la dimensione non potrebbe bastare in caso di stringa con apici ?
esempio:
abcdefgh'il => 10
diventerebbe
abcdefgh\'il => 11
Quindi perderei l'informazione,giusto?