首页/新闻资讯/正文详情

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

发布时间:2026/11/6 7:49:32 来源:云帆数科 栏目:资讯中心
如果要存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

相关推荐

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

/* 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:32

标签/小票打印机驱动
标签/小票打印机驱动

/* 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:32

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

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

大模型实操指南:从本地部署到PPT级可控生成
大模型实操指南:从本地部署到PPT级可控生成

1. 这不是“学大模型”,而是重建你和信息世界的关系“大模型相关内容的研究学习”——看到这个标题,我第一反应是笑。不是嘲笑,是那种在实验室熬了三个通宵、刚调通一个LoRA微调任务后,盯着终端里跳出来的loss曲线突然失语的笑。因… · 2026/11/6 15:59:18

高效查找第K大元素:排序、堆与快速选择算法对比
高效查找第K大元素:排序、堆与快速选择算法对比

1. 问题描述与核心挑战 给定整数数组 nums 和整数 k,我们需要找到数组中第 k 个最大的元素。请注意,这里要求的是排序后的第 k 个最大元素,而不是第 k 个不同的元素。 这个问题看似简单,但隐藏着几个关键挑战: 当数组… · 2026/11/6 15:05:13

企业设备数字化管理:易点易动系统实践指南
企业设备数字化管理:易点易动系统实践指南

1. 设备管理在企业数字化转型中的核心价值 设备管理作为企业资产管理的重要组成部分,正在经历从传统人工记录向数字化、智能化管理的转变。在制造业、医疗、教育等行业,设备资产往往占据企业总资产的60%以上,其管理效率直接影响企业运营成本和… · 2026/11/6 15:05:13

企业元宇宙治理框架:技术实现与合规路径
企业元宇宙治理框架:技术实现与合规路径

1. 企业元宇宙治理框架的核心逻辑 企业元宇宙作为数字化转型的新阶段,其治理框架需要兼顾技术创新与合规要求。从技术架构角度看,企业元宇宙本质上是一个由数字孪生、区块链、人工智能等技术构成的复杂系统。这个系统需要解决三个核心问题:如… · 2026/11/6 14:59:51

基于CDC的MySQL实时数据同步方案实践
基于CDC的MySQL实时数据同步方案实践

1. 项目背景与核心价值 在数据驱动的业务场景中,数据库表间数据同步是个高频需求。我最近在电商订单系统中就遇到了这个问题:订单主表数据变更后,需要实时同步到统计分析表和风控表。传统的手动同步或定时任务方式存在延迟高、易出错的问题&a… · 2026/11/6 14:00:34

JSP农贸交易系统开发与智能撮合算法实践
JSP农贸交易系统开发与智能撮合算法实践

## 1. 项目概述与核心价值农贸产品交易系统是连接农产品生产端与消费端的重要数字化桥梁。这个基于JSP技术的交易平台(项目编号g3608)完整包含了程序源码、数据库设计、部署指南和开发环境配置,是一套开箱即用的农产品B2B解决方案。我在参与某… · 2026/11/6 14:00:34

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* 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 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* 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 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* 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 10:29:23

三菱PLC数据采集到数据库的时序设计:Python+MC协议实战
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战

/* 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:02:11

ASIC主模式RTL设计:状态机与三态驱动的流片级实现
ASIC主模式RTL设计:状态机与三态驱动的流片级实现

/* 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:02:11

STM32嵌入式C++开发:GDB调试与Renode仿真实战指南
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南

/* 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:02:11

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* 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 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* 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 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* 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 10:29:23

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码