MySQL数据类型的选择

时间:2022-03-03 08:46:32

+++++++++++++++++++++++++++++++++++++++++++
标题:MySQL数据类型的选择
时间:2019年2月22日
内容:MySQL数据类型的选择范式参考
重点:主要讲述MySQL数据库字段类型选择方式
+++++++++++++++++++++++++++++++++++++++++++
1. 为什么要选择字段数据类型
MySQL数据库为其用户提供了大量的数据类型,为了优化存储,提高数据库性能,应根据需要存储的数据特点存在最为合适和精确的数据类型。

2. 整数与浮点数
如果存储的数据是否需要精确到小数,不需要则可根据数据大小选择相应的整数数据类型;
如果存储的数据需要保留小数,是否要求尽量精确,不需要则选择float数据类型;
如果存储的数据需要保留小数并要求尽量精确,则选择double数据类型。

3. 日期和时间类型(YEAR、TIME、DATETIME和TIMESTAMP)
3.1 YEAR数据类型
建议用于仅需要记录年份的数据字段,但其范围较小,如果需要存储大范围也可以选择DATETIME;
3.2 TIME数据类型
建议用于仅需要记录时间的数据字段(XX年XX月XX日)。
3.3 DATETIME和TIMESTAMP数据类型
DATETIME和TIMESTAMP两种数据类型均可以记录"日期+时间";
DATETIME数据类型的取值范围大于TIMESTAMP数据类型;
TIMESTAMP数据类型可以在未给该字段赋值的情况下,将当前的时间戳存入数据库;
具体需要根据数据情况进行确定。

4. char与varchar数据类型
4.1 char与varchar数据类型的特点
char类型为定长字符串类型;varchar为非定长字符串类型
char类型会自动删除数据后的空格;varchar不会删除数据后的空格
char类型存储占用定义的空间大小;varchar类型存储占用实际数据大小的空间

4.2 char与varchar的选择原则
char数据类型为固定长度,处理速度优于varchar数据类型。
char数据类型为定长字符串类型,会造成存储空间的浪费,该方面varchar数据类型优于char数据类型。
查询时,varcha的数据缓存到内存中时,需要预先分配的缓存空间等于定义时最大的数据空间,可能造成内存的消耗。

5. ENUM和SET数据类型
ENUM适用于仅在数据集合中取一个值的情况并且数据集合较小;
SET适用于仅在数据集合中取多个值的情况。

6. BLOB和TEXT数据类型
BOLB:二进制形式大容量信息存储,用于存储图片、音频等数据信息;
TEXT:文本形式大容量信息存储,用于存储纯文本数据信息。