2010-07-14 9 views
2

J'ai été demandé cela avant avec léger différent avec la question actuelle. mais n'a pas eu la réponse que je regardais.md5 hachage pour les URLs dans l'index unique

Ma question est que je dois stockermd5($url) dans l'index unique dans MySQL ?? J'ai vu cela dans un code en fait je ne me souviens pas .. c'est une grande base de données avec plus de 5 millions d'urls et l'indexation est faite en appelant des URLs.

Des idées?

+5

En fait, je n'arrive pas à comprendre ce que vous demandez. La raison pour laquelle quelqu'un hacherait un motif avant de le rechercher est d'accélérer la recherche ou de réduire ses besoins de stockage. – Borealid

+0

Un hachage aidera seulement un montant insignifiant sur la vitesse de recherche d'index; il aidera certainement moins que le coût de maintenir et de stocker l'index haché. Une raison pour stocker et rechercher sur un objet haché au lieu de l'élément non haché serait de cacher la valeur réelle de l'objet. Lorsque l'élément est haché, l'utilisateur doit déjà connaître sa valeur pour l'utiliser pour rechercher un enregistrement. –

Répondre

1

Certains sites pour utilisations hachant urls dans la base de données, car ils utilisent hash dans urls dire redirect pour l'utilisateur à l'URL externe. Je ne vois aucune raison de le faire si ce n'est pas le cas.

0

vous dites que l'URL est appelée en tant que tel:

www.yourdomain.com?id=89ce9250e9f469c9d1816e1cc0fb47a1 

puis l'identifiant (89ce9250e9f469c9d1816e1cc0fb47a1 qui est un md5() du réel querystring url) est recherché à partir de la base de données pour résoudre le réel url qui pourrait être:

www.yourdomain.com?user=23&location=5&eventtype=23&year=2010 

Est-ce le genre d'utilisation dont vous parlez?

jim

+0

Eh bien md5 est à sens unique, ce qui ne fonctionnerait pas vraiment avec md5 mais l'idée est, IMO le même que mathew veut – DrColossos

+0

Dr - oui, je suis conscient de la md5 étant un moyen. ma pensée était qu'il aurait une colonne unique qui stockait le md5 de l'url, qui a recherché la valeur réelle d'une colonne secondaire .. cela a-t-il un sens ?? pas sûr, bien sûr, pourquoi il voudrait faire cela, mais peut-être une mise à jour de la question répondra :) –

2

Je ne pense pas que vous devriez hacher vos URLs. La seule raison plausible serait d'économiser de l'espace (si la plupart des URL dépassent 32 caractères) au détriment d'un risque accru de collision.

Ce que vous devez faire est normalize the URLs.