Mysql 高效的存储IPv4地址 inet_aton inet_ntoa

IPv4的地址人们通常使用的是varchar(15)列来存储IP地址。mysql可以使用无符号整数来存储,myql提供inet_aton()inet_ntoa()来互相转换。

使用 inet_aton() 存储IP地址可以使用无符号的int 就可以存储了。

//创建数据库
create table a(ip int unsigned);

这里写图片描述

使用 inet_aton向数据库中添加ip地址

insert into a values(inet_aton('255.255.255.255')), (inet_aton('192.168.1.1'));

Mysql 高效的存储IPv4地址 inet_aton inet_ntoa_第1张图片

查询数据

select * from a where ip=inet_aton('192.168.1.1');

Mysql 高效的存储IPv4地址 inet_aton inet_ntoa_第2张图片

使用 inet_aton() 来显示数据

select inet_ntoa(ip) from a;

Mysql 高效的存储IPv4地址 inet_aton inet_ntoa_第3张图片

使用int来存储ip可以加快通过ip查找的速度。

你可能感兴趣的:(MySQL)