Поскольку я не знаю точно, что вы пытаетесь сделать, я сделаю предположение, что вы не хотите вводить данные дважды и хотите быстро обнаруживать столкновения. В этом случае я предлагаю следующий алгоритм в псевдокоде:
found = false
hv = hash(urlValue)
if table[hash,url] contains pair (hv,urlValue)
found = true
endif
if (not found)
insert table (hv,urlValue)
endif
В вашей базе данных создайте неуникальный индекс для столбца хеша, чтобы ускорить поиск. Это позволит быстро выполнить запрос по (hash, url) - в обычном случае вы смотрите только на одну строку, поскольку хэш, вероятно, уникален, но вы действительно решаете принять или отклонить на основе фактического URL. Это позволит вам использовать более короткую хеш-функцию. Предположительно, вы уже сохраняете URL для последующего использования, поэтому это не потребует дополнительного хранилища.