Saran hash MD5 yang Anda miliki sangat bagus - didokumentasikan dalam High Performance MySQL 2nd Ed. Ada beberapa trik untuk membuatnya bekerja:
CREATE TABLE url (id NOT NULL primary key auto_increment,url varchar(255) not null,url_crc32 INT UNSIGNED not null,INDEX (url_crc32));
Kueri pilihan harus terlihat seperti ini:
PILIH * FROM urls WHERE url='http://stackoverflow.com ' DAN url_crc32=crc32('http://stackoverflow.com ');
Url_crc32 dirancang untuk bekerja dengan indeks, termasuk url dalam klausa WHERE dirancang untuk mencegah tabrakan hash.
Saya mungkin akan merekomendasikan crc32 melalui md5. Akan ada beberapa tabrakan lagi, tetapi Anda memiliki peluang lebih tinggi untuk memasukkan semua indeks dalam memori.