Otra idea para probar podría ser identificar cadenas comunes y representarlas con un mapa de bits. Por ejemplo, tenga dos bits para representar el protocolo (http, https, ftp o cualquier otro), otro bit para indicar si el dominio comienza con "wwww", dos bits para indicar si el dominio termina con ".com", ". org", ".edu" o algo más. Tendría que hacer un análisis de sus datos y ver si tienen sentido, y si hay otras cadenas comunes que pueda identificar.
Si tiene muchas URL para el mismo sitio, también podría considerar dividir su tabla en dos diferentes, una que contenga el dominio y la otra que contenga la ruta relativa al dominio (y la cadena de consulta y la identificación del fragmento, si está presente). Tendría una tabla de enlaces que tuviera la identificación de la URL, la identificación del dominio y la identificación de la ruta, y reemplazaría su tabla de URL original con una vista que uniera las tres tablas. La tabla de dominio no tendría que estar restringida al dominio, podría incluir tanto de la URL como fuera común (por ejemplo, 'http://stackoverflow.com/questions'). Esto no requeriría demasiado código para implementarlo y tiene la ventaja de seguir siendo legible. Su codificación numérica podría ser más eficiente, una vez que lo descubra, tendrá que analizar sus datos para ver cuál tiene más sentido.