【你问我答】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-04 09:10
插入数据前,先用inet_aton把ip地址转为整型,可以节省空间。显示数据时,使用inet_ntoa把整型的ip地址转为地址显示即可。
点赞 回复 分享
发布于 2020-06-04 07:14
int吧(前提是ipv4),4个字节一个字节代表一位,而且方便比较排序之类的
点赞 回复 分享
发布于 2020-06-02 20:01
据说通过函数转为int型,性能提升不少,会节省不少空间,速度也快。
点赞 回复 分享
发布于 2020-06-02 11:58
varbinary(4)吧,虽然可读性差,但是占用的存储空间小很多。
点赞 回复 分享
发布于 2020-06-02 11:49
varchar?
点赞 回复 分享
发布于 2020-06-02 11:15

相关推荐

牛客78099800...:实习现在还不捞26届的啊,我投了很多,没有进流程的,以为是在搞秋招,但意外发现大三的不少都面实习了
点赞 评论 收藏
分享
11-20 22:03
东北大学 Java
用哈基米写的简历,有点夸大,等我后面改谦虚点,能不能找个日常实习,项目是点评和天机,没什么荣誉要不要把蓝桥杯和六级删了算了,实在没门面
程序员花海:日常实习这份简历够用的,等实习之后把实习经历结合业务好好写一下 到时候把实习经历放在项目经历的前面 可以看我主页修改简历的模板
如何写一份好简历
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务