IP地址在mysql数据库里面的存储方式

在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
?>

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对北漂的程序猿的支持。

发表评论

电子邮件地址不会被公开。 必填项已用*标注