为什么要问如何存储IP

首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗?

其实做任何程序设计都要在功能实现的基础上最大限度的优化性能。而数据库设计是程序设计中不可忽略的一个重要部分,所以巧存IP地址可以一定程度获得很大提升。

利用函数算法处理

在MySQL中没有直接提供IP类型字段,但如果有两个函数可以把IP与最大长度为10位数字类型互转,所以使用int类型存储IP比varchar类型存储IP地址性能要提升很多,减少不少空间。因为varchar是可变长形,需要多余的一个字节存储长度。另外int型在逻辑运算上要比varchar速度快。

IP转数字函数inet_aton()

所以IP的表字段可以设置为INT就好,如果IP获取不到可以直接存0代表获取不到IP的意思

数字转IP函数inet_ntoa()

整型字段的比较比字符串效率高很多,这也符合一项优化原则:字段类型定义使用最合适(最小),最简单的数据类型。
inet_aton()算法,其实借用了国际上对各国IP地址的区分中使用的ip number。
a.b.c.d 的ip number是:
a * 256的3次方 + b * 256的2次方 + c * 256的1次方 + d * 256的0次方。

【mysql】MySQL存储IP地址相关推荐

  1. MySQL怎样存储IP地址

    为什么要问如何存储IP 首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗? 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中不 ...

  2. Mysql数据库存储ip地址

    很多时候我们数据库存储ip地址都是以字符串的形式的,毕竟那个ip地址点来点去的,其他类型都无法存储了,今天带来一个小知识,mysql中的inet_aton使用 从上图可以看到,使用这个函数可以把ip地 ...

  3. mysql中存储ip地址,将ip转换为整数存储

    mysql中将ip转换为整数存储,可以节省空间和提高性能,但是不利于阅读.<msql高性能>中推荐将ip地址转换为整数,用一个无符号的32位的整数存储. select INET_ATON( ...

  4. mysql数据库ip地址_MySQL数据库存储IP地址的方法

    为什么要问如何存储IP? 首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗? 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中 ...

  5. MySQL如何有效的存储IP地址

    文章目录 序言 工具类实现转换 数据库函数实现转换 一.IP地址应该怎么存 二.整数存储 IP 地址的查询性能实验 1.测试范围查询: 2.IP精确查询: 3.整理一下结果发现: 总结 首先就来阐明一 ...

  6. mysql存储ip地址_MySQL怎样存储IP地址

    为什么要问如何存储IP 首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗? 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中不 ...

  7. MySql存储IP地址(兼容ipv4和ipv6)

    MySql存储IP地址(兼容ipv4和ipv6) 最近项目涉及到IP白名单的问题,需要设计表来存储IP地址,网上的方法针对IPV4和IPV6用什么类型存储也没有个统一的答案(都是抄来抄去....) 1 ...

  8. MySQL 存储 IP 地址

    在 MySQL 中,如果是以字符串的形式存储 IP 地址,在正常格式下,最小长度为 7 个字符 (0.0.0.0),最大长度为 15 个 (255.255.255.255),我们通常会使用 varch ...

  9. 存储IP地址,到底用什么数据类型相对比较好

    一. 介绍 在平常开发当中,肯定遇到过需要存储IP地址的场景,比如登录.访问.操作日志记录,方便起见直接使用字符串类型存储也不是不可以,但是在<高性能MySQL>中,建议存储IPv4地址时 ...

最新文章

  1. oracle的to_char如何优化,性能 – 如何优化在date子句中包含to_char的Oracle查询
  2. python 中的 for-else 和 while-else 语句
  3. 计算机网络可以把在区域上分散的单个,计算机网络技术及应用课后习题
  4. java修改title_js修改title
  5. 经典DL论文研读(part2)--Deep Sparse Rectifier Neural Networks
  6. .NET Core 3.0:System.Data的变化
  7. jqgrid实现客户端导出Excel、txt、word、json等数据格式的文件
  8. 如何嗅闻交换网络和ARP骗子-ARP解释的原则
  9. 2019递归实现字符串的逆序存储(C++)
  10. [洛谷P1908] 逆序对|归并排序|树状数组
  11. Eclipse中 搭建 Spring+SpringMVC+Mybatis整合(下)
  12. QMutexLocker作用范围
  13. 年终将至,财务人如何做好数据分析?
  14. SlickEdit 使用技巧大收集
  15. Linux下破解UE
  16. 使用wget从google drive下载
  17. 看了几个技术入股的帖子,忍不住写个自己亲身经历吧
  18. RK3328安装liunx(ubuntu16.04)RK固件
  19. linux查看共享内存文件,linux 共享内存
  20. 比较两组数据的差异用什么图更直观_科研数据可视化:巧妙运用各种形式的图表...

热门文章

  1. arcgis如何连接Oracle,arcgis直连oracle数据库
  2. Spring框架的xml出错Cannot resolve reference to bean txPointcut while setting bean property pointcut
  3. java中long的包装类_Java中基本数据的包装类
  4. 20210803:AXI-Stream协议源码分析初探
  5. html中表格内容居右的写法
  6. Zigbee 学习计划——第2天——熟悉CC2530的基本例程
  7. VB 字符串MD5加密函数
  8. 从零学ELK系列(一):为什么要跟我学从零学ELK系列
  9. SpaceX载人龙飞船意外爆炸,据称几乎被完全摧毁
  10. “培训班”出身的AI工程师,要得要不得?