首頁 >後端開發 >php教程 >Mysql如何存储Url字符串

Mysql如何存储Url字符串

WBOY
WBOY原創
2016-06-06 20:34:372213瀏覽

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 是否相同即可。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn