mysql字段类型优化

本文介绍了MySQL字段类型的优化策略,遵循在确保需求的基础上选择最小数据类型的原则。针对整型数据,如年龄和主键id,推荐使用tinyint到mediumint(无符号型)。对于字符串类型,如手机号和MD5密码,推荐使用char或varchar,考虑固定长度和可变长度的场景。时间类型优化提倡使用适合的日期时间类型。此外,枚举和集合类型适合单选和多选场景,IP地址存储推荐使用整型而非varchar。

选型原则:在保证足够用的前提下尽量选择最小类型!

整型数据优化

存储人的年龄应该使用哪种数据类型?答:使用tinyint类型(无符号型)

存储乌龟的年龄应该使用哪种数据类型?答:使用smallinit类型(无符号型)

存储一个1500万数据的数据表其主键id应该选择哪种数据类型?答:使用mediumint(无符号型),大约在0-1600万左右

①考虑空间问题

②考虑范围问题(unsigned无符号)

字符串类型优化

char(length)占用的空间为 固定的,与内容多少无关;

varchar(length)占用的空间为 实际内容字符个数*字节 + 1

如果要存储一个11位的手机号码?答:选择char11)比较合适

如果要存储一个32位的md5加密密码?答:选择char32)比较合适

如果要存储一个用户名或一个标题,由于不确定具体要存放多少个字符,为了避免空间的浪费建议使用varchar类型。

如果要存储一个描述信息(不超过250个汉字),使用varchar255)比较合适。

如果要存储一个文本信息(文章内容),其超过了255个字符,建议使用text文本类型。

时间类型优化

在实际应用中,由于date类型主要用于存储时间信息,但是在php中,我们有相关的函数可以对整型数据和时间进行转化,所以实际应用中,大部分情况存储时间都是转化为整型数据直接存储的

5、枚举类型与集合类型

如果程序中有单选或多选情况,不建议使用varchar类型,而建议使用枚举类型或集合类型。

6、IP类型数据的存储


经常要保存IP地址,这个时候不建议使用varchar类型来保存数据,而建议使用整型来保存IP信息


//php中ip转整形

echo ip2long("192.168.1.1");

//整形转ip

echo long2ip(3232235777);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值