MySQL数据类型的选择

  1. 数字类型

列类型

存储空间

取值范围

SIGNED

UNSIGNED

tinyint

1字节

-128~127

0~255

smallint

2字节

-32768~32767

0~65535

mediumint

3字节

-8388608~8388607

0~16777215

int

4字节

-2147483648~2147483647

0~4294967295

bigint

8字节

-9223372036854775808

0

~9223372036854775807

~18446744073709551615

 

列类型

存储空间

是否精确类型

FLOAT

4字节

DOUBLE

8字节

DECIMAL

每4字节存9个数字,小数点占1字节(财务

 

  1. 日期类型与二进制类型
  1. DATETIME日期类型

占用8字节,与时区无关,保存到毫秒,保存时间范围大(不要使用字符串存储日期类型,因为无法使用MySQL日期函数操作,损失很多便捷性,如果使用字符串的存储要多

  1. TIMESTAMP时间戳

时间范围(1970-1-1到2038-1-19),精确到秒,采用整型存储,依赖于时区,自动更新timestamp列的值

  1. 字符串类型
  1. VARCHAR类型

VARCHAR变体长度,根据实际内容保存数据,使用最小的符合需求的长度;VARCHAR(255)以下使用额外一个字节保存长度,以上则使用额外两个字节保存长度;VARCHAR(5)与VARCHAR(200)内存占用不同,前者开辟5个内存空间,后者开辟200内存空间;VARCHAR变更长度时会锁表(255到256)

VARCHAR适合存储长度波动大的数据,(如博客文章),字符串很少被更新的场景,VARCHAR适合保存多字节字符(utf-8)

  1. CHAR类型

CHAR属于定长数据(最大255),自动删除末尾的空格,检索效率比VARCHAR高

适合存储长度波动不大的数据(如MD5摘要),适合存储短字符串,适合存储经常更新的字符串

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值