MySQL保存URL用什么类型合适
最近在做微信的公众号开发,一些表需要保存URL信息,建表的时候我在犹豫,到底是TEXT还是VARCHAR,如果是VARCHAR长度又是多少?
References:
- https://stackoverflow.com/questions/219569/best-database-field-type-for-a-url 原文地址
- https://boutell.com/newfaq/misc/urllength.html 主流浏览器的最大URL长度
看了下StackOverflow上这个问题的最高票,感觉分析的很在理,搬过来翻译下,嘻嘻。
- 首先,在主流浏览器中,限制的URL长度最小值是IE,为2083,见参考链接文章。
- 然后,MySQL中VARCHAR列中的值是可变长度的字符串。在5.0.3之前,可以指定长度从0到255,但是从5.0.3开始,长度为0到65535。MySQL 5.0.3及更高版本中VARCHAR的有效最大长度受最大行大小(65,535字节,在所有列之间共享)和使用的字符集的限制。
(注:原链接已经失效了,给个最新的吧,但是内容有些不一样。https://dev.mysql.com/doc/refman/8.0/en/char.html) - 所以...
< MySQL 5.0.3 用 TEXT
或者
\>= MySQL 5.0.3 用 VARCHAR(2083)
个人觉得这样确实是没问题的,毕竟短链这么流行的今天,大厂基本都用了短链。当然如果2083真的不够用,VARCHAR(65535)走起,还不够?TEXT...额,我觉得需要考虑下这个链接真的正常吗?