如果要存ip地址,用什么数据类型比较好?

发布时间:2026/11/6 7:49:29

如果要存ip地址,用什么数据类型比较好? 在看高性能 MySQL 第 3 版4.1.7 节时作者建议当存储 IPv4 地址时应该使用 32 位的无符号整数UNSIGNED INT来存储 IP 地址而不是使用字符串。但是没有给出具体原因。为了搞清楚这个原因查了一些资料记录下来。相对字符串存储使用无符号整数来存储有如下的好处节省空间不管是数据存储空间还是索引存储空间便于使用范围查询BETWEEN...AND且效率更高通常在保存 IPv4 地址时一个 IPv4 最小需要 7 个字符最大需要 15 个字符所以使用VARCHAR(15)即可。MySQL 在保存变长的字符串时还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来存储只需要 4 个字节即可。另外还可以使用 4 个字段分别存储 IPv4 中的各部分但是通常这不管是存储空间和查询效率应该都不是很高可能有的场景适合使用这种方式存储。使用字符串和无符号整数来存储 IP 的具体性能分析及 benchmark可以看这篇文章https://bafford.com/2009/03/09/mysql-performance-benefits-of-storing-integer-ip-addresses/使用无符号整数来存储也有缺点不便于阅读需要手动转换对于转换来说MySQL 提供了相应的函数来把字符串格式的 IP 转换成整数INET_ATON以及把整数格式的 IP 转换成字符串的INET_NTOA。如下所示mysql select inet_aton(192.168.0.1); -------------------------- | inet_aton(192.168.0.1) | -------------------------- | 3232235521 | -------------------------- 1 row in set (0.00 sec) mysql select inet_ntoa(3232235521); ----------------------- | inet_ntoa(3232235521) | ----------------------- | 192.168.0.1 | ----------------------- 1 row in set (0.00 sec)对于 IPv6 来说使用VARBINARY同样可获得相同的好处同时 MySQL 也提供了相应的转换函数即INET6_ATON和INET6_NTOA。对于转换字符串 IPv4 和数值类型可以放在应用层下面是使用 java 代码来对二者转换package com.mikan; /** * author Mikan */ public class IpLongUtils { /** * 把字符串IP转换成long * * param ipStr 字符串IP * return IP对应的long值 */ public static long ip2Long(String ipStr) { String[] ip ipStr.split(\\.); return (Long.valueOf(ip[0]) 24) (Long.valueOf(ip[1]) 16) (Long.valueOf(ip[2]) 8) Long.valueOf(ip[3]); } /** * 把IP的long值转换成字符串 * * param ipLong IP的long值 * return long值对应的字符串 */ public static String long2Ip(long ipLong) { StringBuilder ip new StringBuilder(); ip.append(ipLong 24).append(.); ip.append((ipLong 16) 0xFF).append(.); ip.append((ipLong 8) 0xFF).append(.); ip.append(ipLong 0xFF); return ip.toString(); } public static void main(String[] args) { System.out.println(ip2Long(192.168.0.1)); System.out.println(long2Ip(3232235521L)); System.out.println(ip2Long(10.0.0.1)); } }输出结果为3232235521 192.168.0.1 167772161
延伸阅读

更多相关文章

2026/11/6 7:49:29

第三章-计算机系统-系统分析师高频考点汇总

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 7:49:29

标签/小票打印机驱动

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 7:49:29

【K8s系列 (一) 】Docker与容器(上篇)

⭐️名不显时心不朽,再挑灯火看文章。 个人主页 :YYYing. ⭐️Kubernetes系列专栏:从零开始的k8s学习 系列下期内容:暂无 目录 前言 一、初识容器 1、docker的形态 2、docker的安装 3、docker的使用 4、docker的架构 二…

2026/11/6 8:54:54

强化学习做人形运动控制:从仿真到真机的 gap 清单(完整版)

本文是《机器人炼金术 进阶配方》第 09 期完整版。相比免费版,本文额外包含:信源层(四篇里程碑论文的要点中英对照与精读批注)、延迟注入训练的可复现代码、域随机化参数表模板、sim2real 验收流程。 一、一个所有团队都经历过的下午 仿真演示视频里,人形机器人后空翻落…

2026/11/6 8:54:54

告警风暴怎么压?100MW 电站监控平台告警引擎架构复盘

去年 9 月,华东某资产方旗下的 300 多个工商业电站突然在半小时内弹出了上万条告警。运维群里的消息提示音就没停过,几个运维主管的手机直接被震得发烫。点开一看,全是「逆变器网关离线」和「电网电压异常」,但仔细排查发现&#…

2026/11/6 8:54:54

AgentScope Java v2 第10课,压缩改历史,记忆搬事实

摘要:同一次 call 里,压缩会把 9 条工作历史换成 1 条摘要加 3 条尾部,模型还记得“夜莺”,却复述不出原话;记忆则在不碰历史的情况下,把事实写进 daily、合并进 MEMORY.md。我用三个实验拆开这两条流水线&…

2026/11/6 8:49:48

广东尘埃粒子计数器选型指南

在广东选尘埃粒子计数器,最先要定的不是品牌,也不是“通道数越多越好”的配置清单,而是一个更根本的问题:**这台仪器测出的数据,要拿去做什么**。在深圳的芯片封装车间,它要能看见0.1 μm级别的纳米颗粒&am…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 1:03:39

MCU晶振电路设计全解析:从负载电容计算到PCB布局调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑