您的位置:首页 > 数据库 > MySQL

MySQL有关ip地址的优化存储

2016-07-11 11:04 232 查看
为什么要优化ip地址的存储?

很多时候,我们在操作mysql时,并为过分关心如何优化mysql的存储内容,提高访问速度,但是做任何程序设计都要在功能实现的基础上最大限度的优化性能。而数据库设计是程序设计中不可忽略的一个重要部分,合理的使用一定的优化方式,证明你摆脱了入门级新手的称号。

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

IP转数字函数inet_aton()

数字转IP函数inet_ntoa()

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

0转换ip代表0.0.0.0

整型字段的比较比字符串效率高很多,这也符合一项优化原则:字段类型定义使用最合适(最小),最简单的数据类型。
inet_aton()算法,其实借用了国际上对各国IP地址的区分中使用的ip number。
a.b.c.d 的ip number是:
a * 256的3次方 + b * 256的2次方 + c * 256的1次方 + d * 256的0次方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: