2009-11-15 10 views
9

Estaba pensando en almacenar valores de URL en mi base de datos, pero sé que algunas URL a veces son ridículamente largas. Creo que mi base de datos MySQL es la versión 5.0.¿Cuál es la mejor manera de almacenar un valor de URL usando MySQL?

Estaba pensando en usar.

VARCHAR(255) 

pero esto solo funcionará durante tanto tiempo. Entonces debería usar

TEXT 
+0

Dependiendo de sus necesidades, utiliza acortamiento de URL (IE: TinyURL) y almacena la versión abreviada. –

+7

@OMG Ponies: Eso está creando otra dependencia externa. –

+2

255 es demasiado corto como han señalado otras personas. Necesitará al menos 2K si cumple con las especificaciones. La pregunta es: ¿qué quieres hacer con eso? ¿Solo almacenar como está o tratar como texto? Eso le dará el tipo (BLOB o VARCHAR/TEXT) – dajobe

Respuesta

9

La longitud máxima de un VARCHAR en MySQL 5.0 es 65536, por lo que no está limitado a 255.

+0

Sí, 'TEXT' es una especie de exageración –

+0

Pensé que solo estaba disponible en 5.0.3 y versiones posteriores – mii

+0

@mii: Ya veo, estás usando 5.0.0. ¡Suerte! –

5

Maximum URL lengths son diferentes para diferentes navegadores. Su mejor opción es decidir la longitud que desea admitir y luego establecer el tamaño en un VARCHAR si cabe en la longitud máxima de VARCHAR. Si necesita usar TEXT, pregunte por qué.

+4

Dado que IE admite un máximo de 2.083 caracteres, puede optar por utilizar VARCHAR (2083). :-) – AboutDev

+0

@AboutDev: Ahora que sabemos que es para MySQL 5.0.3 anterior, eso no está sucediendo :( –

+0

Sí. Una posible solución si realmente necesita soportar tantos caracteres es hacer una tabla URL separada y almacenar la elementos de la URL allí como columnas separadas ... como el servidor, yadda yadda. – AboutDev

0

No utilice 5.0.0, o ninguna versión .0. Eso ni siquiera fue lanzado como GA.

La respuesta a su pregunta depende de si, o de cuánto, desea indexarla. Probablemente quiera indexarlo, pero puede usar un índice de prefijo que ahorrará mucho espacio en el índice y será casi tan selectivo. La desventaja es que si desea ordenar las URL en orden, un índice de prefijo no lo hará, por lo que necesitará una clasificación de archivos.

Cuestiones relacionadas