MySQL数据类型

数值数据类型

tinyint 有符号范围为-128到127,无符号为0到255,占用空间1字节
smallint 有符号为-32768到32767,无符号为0到65535,占用空间2字节
int 有符-2147483648到2147483647, 无符号为0到4294967295占用空间4字节
mediumint有符号为-8388608到8388607,无符号为0到16777215占用空间3字节

bigint 有符号为-(2^23)~(2^23 - 1),无符号为0~(2^24 - 1),占用空间字节为8字节

浮点数类型
float(m,d)不能使用无符号的浮点数字,可以定义显示长度m和小数位数d,默认的为10,2
double(m,d)不能使用的双精度浮点数,默认的为16,4,存经纬度用此类型
定点数类型
decimal(m,d)非压缩浮点数不能是无符号的,显示长度和小数的数量是必须的,在精度要求比较高的应用中(如货币)要使用定点数来保存数据

日期和时间类型

类型名称                           日期格式                                          占用空间
YEAR                                  YYYY                                             1个字节
TIME                                   HH:MM:SS                                     3个字节
DATE                                  YYYY-MM-DD                                 3个字节
DATETIME                          YYYY-MM-DD HH:MM:SS              8个字节
TIMESTAMP                        YYYY-MM-DD HH:MM:SS              4个字节

字符串类型

char(M),M为0~255之间的整数

varchar(M),M为0~65536之间的整数,值的长度+1个字节

tinyblob,允许长度为0~255字节,值的长度+1个字节

blob,允许长度为0~65535字节,值的长度+2个字节

mediumblob ,允许长度为0~167772150字节,值的长度+3个字节

longblob ,允许长度为0~4294967295字节,值的长度+4个字节

tinytext,允许长度为0~255字节,值的长度+2个字节

text,允许长度为0~65535字节,值的长度+2个字节

mediumtext,允许长度为0~167772150字节,值的长度+3个字节

longtext ,允许长度为0~4294967295字节,值的长度+4个字节

enum,枚举,存储需求为1或两个字节

set,一个设置,字符串对象可以有零个或多个set成员,存储需求为1,2,3,4或8个字节

数据类型的选择注意事项

BLOB是二进制串,用来存储音频、图片等二进制数据;TEXT是非二进制字符串,用来存放纯文本文件,虽然存储文本文件本质上也是存储二进制,但是TEXT会有一个字符集,会转化为可显示字符。

CHAR是固定长度,优点是处理速度快,缺点是浪费空间;
VARCHAR是可变长度,优点是节省空间,缺点是处理速度慢。
对于MyISAM存储引擎,最好使用固定长度的数据列,以使整个数据表静态化,从而缩短数据检索时间,用空间换时间;
对于InnoDB存储引擎,推荐使用VARCHAR,因为InnoDB数据表的存储格式不分固定长度和可变长度,所以在检索时间上固定长度和可变长度差不多,所以,使用VARCHAR就比较节省空间了。

对于日期类型的选择,如果应用只需要记录年,那么用一个字节来存储的year就可以满足需求,这样不仅能节约存储,更能提高 表的操作效率

如果要记录年月日时分秒,并且记录的年份比较久远,那么最好使用datetime,而不是要使用timestamp,因为timestamp表示的日期范围比datetime要短的多,如果要记录的日期需要让不同时区的用户使用,那么最好使用timestamp,因为日期类型中只用它能够和实际时区相对应


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值