Heim >Backend-Entwicklung >PHP-Tutorial >Mysql如何存储Url字符串

Mysql如何存储Url字符串

WBOY
WBOYOriginal
2016-06-06 20:34:372203Durchsuche

Url长度不一,Mysql如何存储呢?

因为我需要把url作为惟一索引来使用的,后期用来作查询,加短索引我觉的意义不大。
有没有可以把长字符串转成短字符串或数字来存储的好方法(或者其它方式也可以),还是说用Mysql存储本身就是一个错误的选择呢?

回复内容:

Url长度不一,Mysql如何存储呢?

因为我需要把url作为惟一索引来使用的,后期用来作查询,加短索引我觉的意义不大。
有没有可以把长字符串转成短字符串或数字来存储的好方法(或者其它方式也可以),还是说用Mysql存储本身就是一个错误的选择呢?

Url做索引本来就不应该,字符串索引一些方面如果没做好会非常的慢了,何况你还是Url。

如果你还是要Url存储并且Url很长,并且想把字符串缩短可以使用 短域名Api接口,去缩短Url

访问效果还是一样的。

<code>原网址: http://music.baidu.com/song/124380645
短网址: http://dwz.cn/Kn8Ep
</code>

不管多长的Url都会被缩短成固定长度。

百度短网址(页面带有API):http://dwz.cn/

短网址处理下就好了,节省容量,不过还是建议存储短网址的同时再保存一份原网址,

你把Url字符串作为唯一索引就是个错误的方案

可以尝试维护一个key-value的表,然后将key写入你需要保证唯一的字段,字段用int或者bigint,加唯一索引

加多一个字段 url_md5 将 md5(url) 的值存入这个字段,给 url_md5 这个字段设置唯一索引。查询的时候,将要查询的 url 取 md5: select * from table_name where url_md5=URL_MD5。
这种方式需要注意的点就是,可能 url 不同,但是 md5(url) 相同,这种情况只需要再判断下数据表记录集里面的 url 和你需要的 url 是否相同即可。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn