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

MySQL 数据类型

原创 张正沛 2022-10-27
281

MySQL 字段类型占用空间(全)

 

一、整数类型(wholenumber)

   如果存储整数,可以使用这几种整数类型:TINYINT,SNLLINT,MEDIININT,INT,BIGINTO分别使用8,16,24,32,64位存储空间。它们可以存储的值的范围从 -到 ,其中 N 是存储空间的位数。

   MySQL可以为整数类型指定宽度,例如INT(11),对大多数应用,不会限制值的合法范围,只是规定了客户端用来显示字符的个数。对于存储计算来说,INT(1)和INT(11)是相同的。

   整数计算一般使用 64 位的 BIGINT 整数,即使32位环境也是如此。

   unsigned 表示不允许负数,可以使正数的上限提升一倍。

 

二、实数类型(realnumber)

  实数是带有小数部分的数字。float类型、double类型、decimal类型

  MySQL使用 double 作为内部浮点计算的类型。

 

三、字符串类型

1、varchar类型

   varchar类型用于存储可变长字符串。虽然节省了空间,但是在update时可能变得比原来长,InnoDB中可能导致页分裂。合适场景:

  •    字符串列的最大长度比平均长度大很多;
  •    列的更新很少,所以碎片不是问题;
  •    使用了像UTF-8这样复杂的字符集,每个字符都使用不同的字节数进行存储。

2、char 类型

char类型是定长的:MySQL总是根据定义的字符串长度分配足够的空间。当存储CHAR值时,MySQL会删除所有的末尾空格。CHAR值会根据需要采用空格进行填充以方便比较。

  • char适合存储所有值长度都接近的数据、很短的字符串。
  • 对于非常短的列,char 比 varchar 在存储空间上也更有效率,因为 varchar 还有一个记录长度的额外字节。
  • 对于经常变更的数据,char 也比 varchar 更好,因为定长的 char 类型不容易产生碎片。

 

四、日期和时间类型

1、datetime

格式:YYYYMMDDHHMMSS   例:"2019-0101 00:00:00"

范围:1001年 到 9999年

2、timestamp

timestamp显示的值依赖于时区。以1970年1月1日0点作为时间纪元,和 UNIX 时间戳相同。

范围:1970年 到 2038年

 

 

五、位数据类型

1、bit类型

 

2、set类型

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论