mysql中的字段如何选择合适的数据类型呢?

Posted 公号运维家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中的字段如何选择合适的数据类型呢?相关的知识,希望对你有一定的参考价值。

前面两篇我们介绍了很多种数据类型,那么有没有看花眼呢,我们在​mysql​中创建数据表的时候,到底应该选择哪一种数据类型呢?这次我们就来简单的梳理一下子把。

准则

我们不论要如何创建数据表,首先我们需要一个准则,什么准则呢?

就是说,我们要保证在任何情况下均应该使用最精确的类型,即在所有可以表示该列值的类型中,该类型使用的存储最少。

mysql中的字段如何选择合适的数据类型呢?_linux

整数和浮点数

如果不需要小数部分,就使用整数来保存数据;如果需要表示小数部分,就使用浮点数类型。

对于浮点数据列而言,存入的数值会对该列定义的小数位进行四舍五入。

怎么个意思呢?来,举个例子:

假设某一列的值的范围为1~99999,若使用整数,则​​MEDIUMINT UNSIGNED​​​是最好的类型;若需要存储小数的话,那么我们就应该使用​​float​​类型了。

浮点类型包括​​float​​​和​​DOUBLE​​​类型。​​DOUBLE​​​类型精度比​​FLOAT​​​类型高,所以说,要求存储精度较高时应该选择​​DOUBLE​​类型。

浮点数和定点数

浮点数​​FLOAT​​​、​​DOUBLE​​​相对于定点数​​DECIMAL​​有什么优势呢?

优势就是:

在长度一定的情况下,浮点数能表示更大的数据范围。

由于浮点数容易产生误差,因此对精度要求较高时,建议使用定点数​​DECIMAL​​来存储。

​DECIMAL​​​在​​mysql​​中是以字符串来存储的,用于定义货币等对精度要求较高的数据。

日期和时间类型

​mysql​​​对于不同种类的日期和时间有很多数据类型,比如​​year​​​和​​time​​​。如果只需要记录年份,则使用​​year​​​类型即可;如果只需要记录时间,则使用​​time​​类型即可。

如果同时需要记录日期和时间的话,那么我们就可以使用​​timestamp​​​或者​​datetime​​​类型。由于​​timestamp​​​列的取值范围小于​​datetime​​​的取值范围。因此存储范围较大的日期最好使用​​datetime​​类型。

CHAR和VARCHAR之间的特点与选择

​char​​​和​​varchar​​的区别如下:

  • ​char​​​是固定长度字符;​​varchar​​是可变长度字符
  • ​char​​​会自动删除插入数据的尾部空格,​​carchar​​不会删除尾部空格

​char​​​是固定长度,所以他的处理速度要比​​varchar​​​的速度要快,但是反之也有缺点,那就是浪费存储空间,所以多存储不大,但是在速度上有要求的可以使用​​char​​​类型,反之可以使用​​varchar​​类型来实现。

ENUM和SET

​ENUM​​只能取单值,他的数据列表是一个枚举集合。他的合法取值列表最多允许有65535个成员。

所以,在需要从多个值中选取一个时,可以使用​​ENUM​​。

比如,性别字段适合定义为​​ENUM​​类型,每次只能从“男”或者“女”中取一个值;

​SET​​可以取多个值。他的合法取值最多允许有64个成员。

空字符串也是一个合法的​​SET​​​值。在需要取多个值的时间,适合使用​​set​​​类型,比如要存储一个人的兴趣爱好就可以使用​​SET​​类型,比如一个人可以即喜欢打篮球,也可以喜欢看书等。

BLOB和TEXT

​BLOB​​​是二进制字符串,​​TEXT​​​是非二进制字符串,两者均可存放大容量的信息。​​BLOB​​​主要存储图片、音频信息等,而​​TEXT​​只能存储存文本文件。

这种情况下,比如是个多媒体平台,我们这里就要使用​​BLOB​​​类型,反之就使用​​TEXT​​类型即可。

至此,本文结束。 

更多内容请转至VX公众号 “运维家” ,获取最新文章。

------ “运维家”  ------

------ “运维家”  ------

------ “运维家”  ------

linux中断异常,linuxuml建模,linux编译多个源文件,linux怎么更新时间,linux中的分页视频教程,

linux怎么解压gzip,linux解压某个目录,怎么关闭linux网关,linux文件架构图,linux提高权限执行,

linux文件用什么标志,网络安全linux加固,linux中查看邮件,linux修改背景颜色,linux环境下搭建网站。


以上是关于mysql中的字段如何选择合适的数据类型呢?的主要内容,如果未能解决你的问题,请参考以下文章

8.2 第八章 选择合适的数据类型

mysql对应java中常用的字段

8.1 第八章 选择合适的数据类型

MySQL的数据类型 及注意事项

mysql选择合适的数据类型

mysql设计表结构数据类型的选择