2009-11-15 11 views
9

Stavo pensando di memorizzare i valori degli URL nel mio database, ma so che alcuni URL a volte diventano ridicolmente lunghi. Penso che il mio database MySQL sia la versione 5.0.Qual è il modo migliore per memorizzare un valore URL usando MySQL?

Stavo pensando di usare.

VARCHAR(255) 

ma questo funzionerà solo per così tanto tempo. Quindi dovrei usare.

TEXT 
+0

A seconda delle esigenze, è possibile utilizzare la riduzione degli URL (IE: TinyURL) e archiviare la versione abbreviata. –

+7

Ponticelli @OMG: sta creando un'altra dipendenza esterna. –

+2

255 è troppo corto come altri hanno sottolineato. Avrai bisogno di almeno 2K se segui le specifiche. La domanda è: cosa vuoi fare con esso? Basta memorizzare così com'è o trattare come testo? Questo ti darà il tipo (BLOB o VARCHAR/TEXT) – dajobe

risposta

9

La lunghezza massima di un VARCHAR in MySQL 5.0 è 65536, per cui non si è limitati a 255.

+0

Sì, 'TEXT' è una specie di overkill –

+0

Ho pensato che fosse disponibile solo in 5.0.3 e versioni successive – mii

+0

@mii: Vedo, stai usando 5.0.0. Buona fortuna! –

5

Maximum URL lengths sono diverse per i vari browser. La soluzione migliore è decidere la lunghezza che si desidera supportare e quindi impostare la dimensione su un VARCHAR se si adatta alla lunghezza massima VARCHAR. Se hai bisogno di usare TEXT, chiedi perché.

+4

Poiché IE supporta un massimo di 2083 caratteri, è possibile decidere di utilizzare VARCHAR (2083). :-) – AboutDev

+0

@AboutDev: Ora sappiamo che è pre MySQL 5.0.3, che non sta succedendo :( –

+0

Sì. Una possibile soluzione se hai davvero bisogno di supportare così tanti personaggi è quello di creare una tabella URL separata e memorizzare il elementi dell'URL in là come colonne separate ... come il server, yadda yadda. – AboutDev

0

Non utilizzare 5.0.0 o qualsiasi versione .0. Non è stato nemmeno rilasciato come GA.

La risposta alla domanda dipende se, o quanto, si desidera indicizzarlo. Probabilmente vorrai indicizzarlo, ma puoi usare un indice prefisso che salverà molto spazio nell'indice e sarà quasi selettivo. Il rovescio della medaglia è che se si desidera ordinare gli URL in ordine, un indice di prefisso non lo farà quindi avrà bisogno di un fileort.

Problemi correlati