MySQL有关ip地址的优化存储
2016-07-11 11:04
232 查看
为什么要优化ip地址的存储?
很多时候,我们在操作mysql时,并为过分关心如何优化mysql的存储内容,提高访问速度,但是做任何程序设计都要在功能实现的基础上最大限度的优化性能。而数据库设计是程序设计中不可忽略的一个重要部分,合理的使用一定的优化方式,证明你摆脱了入门级新手的称号。
在MySQL中没有直接提供IP类型字段,但提供有两个函数可以把IP与最大长度为10位数字类型互转,所以使用int类型存储IP比varchar类型存储IP地址性能要提升很多,减少不少空间。因为varchar是可变长形,需要多余的一个字节存储长度。另外int型在逻辑运算上要比varchar速度快。
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时,并为过分关心如何优化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密码忘记如何处理
- MAC下安装与配置MySQL
- MySQL _LOAD DATA 导入 csv 文件到数据库表操作日志
- MYSQL错误代码对照大全
- MySqL触发器以及常用转换函数注意事项
- Hadoop里如何Mysql编程
- MySQL数据同步【双主热备】
- mysql开启慢查询日志
- mysql分表和表分区详解
- MySQL 触发器简单实例
- Mysql 随机查询数据
- Jboss添加数据源出现Service jboss.jdbc-driver.mysql is already registered错误
- mysql 无法修改授权
- MySQL的中文乱码问题解决方案
- hibernate的一对一映射-外键映射-单向-mysql数据库
- mysql用户创建及赋权
- MySQL Record
- mysql中limit 和in
- win8 下免安装版mysql
- mysql5.7免安装版,安装启动