te parece binario? usa COMPRESS() en un varbinary o similar

para leerlo usa UNCOMPRESS()
Eso también podría ser una solución. Pero lo de compress no me gusta porque cómo tengas que comparar las url's y tengas que andar descomprimiendo y comprimiendo...
He mirado el tipo de dato TEXT y creo que caben unos 4 Gigas. Estoy utilizando este.
Lo que me fastidia... la clausula UNIQUE, porque la puedes utilizar (INDEX también) pero limitada hasta un tamaño por ejemplo:
...
UNIQUE INDEX `u_url` USING HASH (`url`(333) ASC) ,
...
Tengo que comparar si ya he introducido la url para no volver a introducirla. Lo único que se me ocurre es guardar en la tabla un hash de la url y en otra columna guardar la url en un TEXT.
Entonces cuando tenga que comprobar si ya ha sido introducida, calculo el hash de la url a introducir y hacemos:
SELECT url FROM tabla WHERE url_hash=345123514;
--url es TEXT, me devolvera las que tengan el mismo hash que se supone deberian ser pocas.
Y ahora comparar caracter a caracter todas las url's que me devuelve con la que en teoría voy a introducir.
Se os ocurre una solución mejor?
Saludos.