在MySQL中没有直接提供IP类型字段,但如果有两个函数可以把IP与最大长度为10位数字类型互转,所以使用int类型存储IP比varchar类型存储IP地址性能要提升很多,减少不少空间。因为varchar是可变长形,需要多余的一个字节存储长度。另外int型在逻辑运算上要比varchar速度快。
第一种方式:采用varchar(15),这种方法需要占用15个字节。
第二种方式:用int存储。
1. 利用MySQL函数进行处理。可以采用INET_ATON,INET_NTOA函数进行转换。
mysql> SELECT INET_ATON('127.0.0.1');
+--------------------------+
| INET_ATON('127.0.0.1') |
+--------------------------+
| 2130706433 |
+--------------------------+
mysql> SELECT INET_NTOA(2130706433);
+-----------------------+
| INET_NTOA(2130706433) |
+-----------------------+
| 127.0.0.1 |
+-----------------------+
2. 利用开发语言的函数进行处理,以php进行举例。可以采用ip2long,long2ip函数进行转换。
<?php
echo ip2long('127.0.0.1')."<br/>"; // 2130706433
echo long2ip(2130706433); // 127.0.0.1
?>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对北漂的程序猿的支持。