3、MySql的字段类型和常用字段场景

1、Mysql字段类型主要分为四大类:

A、数字类型

B、字符串类型

C、时间类型

D、空间数据类型

2、由于类型比较多,我们接下来就主要讲解一些比较常用的字段类型:

A、数字类型:

整型

Int:4字节,最大空间长度为11,范围(-2147483648~2147483647)

Tinyint:1字节,最大长度为255,范围(-128~127)

Smallint:2字节,最大长度为255,范围(-32768~32767)

浮点型

Float:4字节,单精度浮点型

Decimal:2字节,是存储为字符串的浮点数

值得注意的是:整型字段实际上设置长度并不能影响他们的存储数据长度。

既你设置了Int(1) 也一样可以存储数据为 100超越个位的数

B、字符串类型:

Char:必须设置长度,最大255个字符

Varchar:必须设置长度,最大65535个字符

Text:长度必须为空,最大65535个字符

MEDIUMTEXT:长度必须为空,最大2的24次方-1个字符

值得注意的是:字符串类型的长度所指的并不是字节,而是字符,既不管汉字英文还是数字,

都各占一个字符,而存储的空间,则是依据对应的字符的编码集来计算字节数。

并且当长度大约255字符时,每个字符的存储空间将增加2个字节数。

3、简单的说下个个字段的应用场景:

int,可用于存储时间戳与自增ID主键

Tinyint,一般只用于状态字段,比如订单状态识别,账号安全级别等

Decimal:常用于返点率,订单金额存储

Char:常用于主键不自增ID,还有订单编号存储,简单的msg记录等

Varchar:不建议超过1024长度,否则使用Text字段代替,常用于内容描述或摘要存储,中长度msg存储,中长度json数据存储。

Text:超长度json数据存储,中长度文本内容存储

MEDIUMTEXT:超长度log、json,文本内容存储

4、值得注意的是:

本文并没有介绍时间类型为常用的字段类型,因为MySql中Time类型是有许多暗藏的缺陷,所以并不推荐大家使用,

在时间开发中要是用到时间存储的话,推荐使用Int(10)存储相应的时间戳,

而真要能用到时间类型的场景只有以下一个:

就是你存储log日志,并无其他表相关链接的情况下,可以使用Timestamp类型。

xiaohuangniu

    原文作者:冯俊豪
    原文地址: https://zhuanlan.zhihu.com/p/29368151
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞