【你问我答】mysql中存ip地址应该用什么数据类型?

问题描述:

mysql中存ip地址应该用什么数据类型?

回答有奖:

选取一位认真回答问题的牛友,赠送200牛币!
▶回答尽量有自己的思考,不要单纯的只是复制粘贴定理定义,或者他人blog哦~

你问我答问题汇总:点击进入
关注你问我答栏目:点击关注

你问我答 - 答问题,成大佬,拿牛币!
你问我答是牛客新栏目,每周1期几个面试中真实遇到的问题,
牛友在问题贴下留下自己的知识,经验与见解,
帮助更多牛友了解更多技术相关知识!
#悬赏##C/C++##Java##面试题目#
全部评论
IP地址的形式应该是:(1~255).(0~255).(0~255).(0~255) 使用什么数据类型,应该根据业务需求来。 1.简单粗暴,直接使用varchar 2.根据算法,将IP地址进行换算,如果是Java,获取到的IP地址应该是String类型,可以使用split()方法进行分割,从而将IP地址每一位换算成整数。例如:    ipBytes = ip.Split('.');    for (int i = ipBytes.Length - 1; i >= 0; i--)    {        num += ((int.Parse(ipBytes[i]) % 256) * Math.Pow(256, (3 - i)));    } 所以可以用int或者long类型来存储,这样存储也容易判断IP地址的范围
1 回复
分享
发布于 2020-06-03 15:08
varchar?
点赞 回复
分享
发布于 2020-06-02 11:15
博乐游戏
校招火热招聘中
官网直投
varbinary(4)吧,虽然可读性差,但是占用的存储空间小很多。
点赞 回复
分享
发布于 2020-06-02 11:49
据说通过函数转为int型,性能提升不少,会节省不少空间,速度也快。
点赞 回复
分享
发布于 2020-06-02 11:58
int吧(前提是ipv4),4个字节一个字节代表一位,而且方便比较排序之类的
点赞 回复
分享
发布于 2020-06-02 20:01
插入数据前,先用inet_aton把ip地址转为整型,可以节省空间。显示数据时,使用inet_ntoa把整型的ip地址转为地址显示即可。
点赞 回复
分享
发布于 2020-06-04 07:14
varchar 就没事了 没有什么时候会差这么一点空间,搞得这么复杂
点赞 回复
分享
发布于 2020-06-04 09:10

相关推荐

2 1 评论
分享
牛客网
牛客企业服务