暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 数据类型介绍和选择建议

码上记录 2021-08-27
219

MySQL数据类型


MySQL数据类型分为三种:数值类型,日期/时间类型和字符串类型。


数值类型包括定点型(decimal), 浮点型(float和double)和整型(从小到大5种int)。


分类类型大小(单位字节)用途
定点型decimal           decimal(M,D)
如果M>D,为M+2否则为D+2
小数值
浮点型float4单精度浮点数值
double8双精度浮点数值
整型tinyint1小整数值
smallint2大整数值
mediumint3大整数值
int4大整数值
bigint8极大整数值


日期/时间类型包括1个year,1个date,3种time。


类型大小(单位字节)格式用途
year1YYYY         年份值
date3YYYY-MM-DD日期值
time3HH:MM:SS时间值
timestamp4YYYYMMDD HHMMSS混合日期和时间值
datetime8YYYY-MM-DD HH:MM:SS混合日期和时间值


字符串类型分为两种:二进制字符串和文本字符串。


二进制字符串包括1个bit,2种binary,4种blob。


类型大小(单位字节)用途
bit1位字段
binary最大255字节固定长度二进制字符串
varbinary最大65535字节可变长度二进制字符串
tinyblob最大255字节短二进制字符串
blob最大65535字节二进制字符串
mediumblob最大16M中等长度的二进制字符串
longblob最大4G极大长度的二进制字符串


文本字符串包括1个enum,1个set,2种char,4种text。


类型大小(单位字节)用途
enum1~2枚举类型
set最大8字节类似枚举类型的字符串
char最大255字节定长字符串
varchar最大65535字节变长字符串
tinytext最大255字节 短文本数据
text最大65535字节长文本数据
mediumtext最大16M 中等长度文本数据
longtext最大4G极大文本数据


选择建议


  1.  尽量选择可以保证正确存储数据的最小数据类型。小的数据类型占用的空间少,操作起来更快。


  2. 使用MySQL日期/时间类型来存储日期和时间。日期/时间类型通常比用字符串类型或者数值类型存储日期占用的空间小,而且还有很多自带的函数进行各种日期时间的转换操作。


  3.   使用enum或set类型来存储枚举值,比使用字符串来存储枚举值占用的空间更小。


  4.  使用smallint unsigned类型来存储IP地址,比使用字符串类型占用的空间更小。可以使用MySQL自带的INET_ATON()和INET_NTOA函数在数值类型和字符串类型之间转换IP地址。




文章转载自码上记录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论