Heim >Backend-Entwicklung >PHP-Tutorial >ip地址存储建议用int还是varchar(15),效率有差别吗

ip地址存储建议用int还是varchar(15),效率有差别吗

WBOY
WBOYOriginal
2016-06-06 20:44:391325Durchsuche

看到有的数据库结构ip用int存储,然后通过ip2long转化,不过这个函数好像有bug,大家怎么看?

回复内容:

看到有的数据库结构ip用int存储,然后通过ip2long转化,不过这个函数好像有bug,大家怎么看?

Mysql可以参考这个答案。

Postgres直接由网络地址类型,参考这里

用varchar或者char
理由:
1.省去转化的过程
2.ipv4或ipv6的都可以存

两种都存不就好

一般网站只是记录用户的一些信息用varchar(15)就行了
int一般是做ip库用的,容易分段记录查询一个ip的所属省市等

用int存省空间,只用4个字节,char的话要用7~15个字节。
最重要的是方便查询比较(数值比较),而且设置整形为索引也比char效率高。

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