La sugerencia de hash MD5 que tuvo es muy buena:está documentada en High Performance MySQL 2nd Ed. Hay un par de trucos para que funcione:
CREATE TABLE urls (id NOT NULL clave primaria auto_increment,url varchar(255) not null,url_crc32 INT UNSIGNED not null,INDEX (url_crc32));
Las consultas seleccionadas deben tener este aspecto:
SELECCIONE * DESDE URL DONDE url='http://stackoverflow.com ' Y url_crc32=crc32('http://stackoverflow.com ');
La url_crc32 está diseñada para funcionar con el índice, incluida la url en la cláusula WHERE está diseñada para evitar colisiones de hash.
Probablemente recomendaría crc32 sobre md5. Habrá algunas colisiones más, pero tiene más posibilidades de ajustar todo el índice en la memoria.