码迷,mamicode.com
首页 > 数据库 > 详细

MySQL有关ip地址的优化存储

时间:2016-07-11 12:00:01      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

为什么要优化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次方。

MySQL有关ip地址的优化存储

标签:

原文地址:http://www.cnblogs.com/guhuicainiao/p/5659579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!