1、用mysql内置函数转换ip地址和数字
利用两个内置函数
1.1,  inet_aton:将ip地址转换成数字型

使用方法举例 : select  inet_aton('ip地址');

select inet_aton('192.168.15.12');

得到的结果: 

ip和数字互相转换mysql mysql ip转换函数_数据存储

1.2,  inet_ntoa:将数字型转换成ip地址

使用方法举例 : select  inet_ntoa(数字);

select inet_ntoa(3232239372);

得到的结果:

ip和数字互相转换mysql mysql ip转换函数_mysql优化_02

不知道大家有没有仔细观察我上面列举的例子, 大家仔细看

ip和数字互相转换mysql mysql ip转换函数_数据库_03

小编使用箭头的方式给大家标准得很清楚了, 刚开始我需要转换成数字的ip地址为'192.168.15.12' , 转换后得到的数字结果是3232239372, 然后紧接着小编拿数字3232239372去解析成ip地址, 得到的结果正好是我们刚开始需要转换的ip地址'192.168.15.12', 也就是说这个过程是可逆的, 我们可以简单理解为 加密解密这个过程, 便于理解.

并且这个内置函数还有一个特别厉害的地方: 

ip和数字互相转换mysql mysql ip转换函数_ip和数字互相转换mysql_04

看到了吗, 它能规定限制了我们ip地址的一个最大范围, 日常中我们最大的ip地址确实为 255.255.255.255;  上面也看到了转换比255.255.255.255大的数值就会转换失败! 我转换最大的ip地址就没什么问题, 运行截图在下面; 可以说这个内置函数很好用了, 哈哈

ip和数字互相转换mysql mysql ip转换函数_数据存储_05

好了, 接下来我们继续看第二种方式

2、充分利用mysql内置的format函数
尤其是在处理字符格式的时候,例如将12345转换成12,345这样的,只要用:format(12345,0)即可,如果用format(12345,2)则显示的是12,345.00了...

ip和数字互相转换mysql mysql ip转换函数_数据存储_06

这个点很细, 可能大部分在平时日常工作中没怎么注意, 遇到存储ip地址这样的情形, 第一反应想到的就是使用字符串,  图方便快捷, 但是我们要知道ip地址如果单纯的使用字符串这样的数据类型来存储是要耗费较多的内存空间的, 大家可以根据小编的案例来, 建议大家使用小编列举的第一种方式来存储和读取, 既节省了内存空间, 又能提高我们在查询过程中的一个效率, 因为第一种方式使用的是整型存储, 整型比字符串操作代价更低 , 因为字符集校对规则是字符比校对整型更加复杂; 字符串的检查规则要比整型严格得多 ; 说了存储ip地址来使用mysql内置函数转换的有点, 小编也来说一说它一些不足的地方;因为转换后存储都是数字值嘛; 所以很容易想到就是: 可得性是没有直接存储ip地址字符串来得更加直观, 可得性不是特别优秀,但是在数据库存储空间上是节省的 , 小编最后说一点 ,如果说你们公司项目业务设计到的表表较多, 使用到ip地址也多, 那么就建议使用mysql自带的这个内置函数将ip地址转换成数值后使用整型来加以存储;