Предложението за MD5 хеш, което имахте, е много добро - документирано е във High Performance MySQL 2nd Ed. Има няколко трика, за да го накарате да работи:
CREATE TABLE urls (id NOT NULL първичен ключ auto_increment,url varchar(255) not null,url_crc32 INT UNSIGNED не null,INDEX (url_crc32));
Заявките за избор трябва да изглеждат така:
SELECT * FROM urls WHERE url='http://stackoverflow.com ' И url_crc32=crc32('http://stackoverflow.com ');
Url_crc32 е проектиран да работи с индекса, включително url в клаузата WHERE е предназначен за предотвратяване на хеш сблъсъци.
Вероятно бих препоръчал crc32 вместо md5. Ще има още няколко сблъсъка, но имате по-голям шанс да поберете целия индекс в паметта.