+++++++++++++++++++++++++++++++++++++++++++
标题: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:文本形式大容量信息存储,用于存储纯文本数据信息。

MySQL数据类型的选择的更多相关文章

  1. Mysql 数据类型及选择原则

    MySQL中的数据类型大的方面来分,可以分为:日期和时间.数值,以及字符串.下面就分开来进行总结. 数据库类型的选择对数据库的性能影响很大 1 . 数据类型会影响存储空间的开销 2 . 数据类型会影响 ...

  2. 05 MySQL数据类型的选择与使用

    数据类型的选择     1.CHAR与VARCHAR           存储/检索的方式不同.         CHAR是固定长度,而VARCHAR是可变长度         非SQLMode下,超 ...

  3. 谈谈如何选择合适的MySQL数据类型

    MySQL数据类型选择 一 .选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更 ...

  4. 如何选择合适的MySQL数据类型

    一.MySQL数据类型选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更少的CP ...

  5. MySQL数据类型的最优选择

    MySQL数据类型的最优选择   慎重选择数据类型很重要.为啥哩?可以提高性能.原理如下:            ● 存储(内存.磁盘).从而节省I/O(检索相同数据情况下)      ● 计算.进而 ...

  6. mysql 数据类型

    1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) mediumint(m) ...

  7. MySQL 数据类型 详解

    MySQL 数据类型 详解 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 My ...

  8. MySQL数据类型——数值类型

    1.1.1 整型 整型 占用字节 范围 范围 tinyint 1 -27~27-1 -128~127 smallint 2 -215~215-1 -32768~32767 mediumint 3 -2 ...

  9. 【转】MySQL数据类型和常用字段属性总结

    来源:http://www.jb51.net/article/55853.htm 这里先总结数据类型.MySQL中的数据类型大的方面来分,可以分为:日期和时间.数值,以及字符串.下面就分开来进行总结. ...

随机推荐

  1. 在Windows 下如何使用 AspNetCore Api 和 consul

    一.概念:什么是consul: Consul 是有多个组件组成的一个整体,作用和Eureka,Zookeeper相当,都是用来做服务的发现与治理. Consul的特性: 1. 服务的发现:consul ...

  2. SyntaxHighlighter 代码高亮极简单配置

    页首Html代码: <!--<link type="text/css" rel="stylesheet" href="https://bl ...

  3. tomcat 大并发报错 Maximum number of threads (200) created for connector with address null and port 80

    1.INFO: Maximum number of threads (200) created for connector with address null and port 80 说明:最大线程数 ...

  4. JavaScript 循环语句

    while     while循环由两个代码块组成,分别是条件语句和循环体. while ( [条件] ) { [循环体] } while循环类似于if语句,不同的是while循环将不断地执行循环体直 ...

  5. array_merge和array+的区别分析

    记得之前发现很多朋友用过array+array的方式,今天索性再聊下这样的话题:如何获取字符键名相同值不同的两个数组值集合?让我认真比较了下PHP中array_merge和array相加的区别 首先来 ...

  6. 解决ajaxfileupload上传文件在IE浏览器返回data为空问题

    关于ajaxfileupload,建议还是别用,已经没有人维护的脚本了,笔者就是入了这个坑. 在IE浏览器中ajaxfileupload返回data为空 jq.ajaxFileUpload ( { u ...

  7. max-width和width的区别

    width为宽度 max-width为最大宽度 如果设置了width,那宽度就定死了,不能动态的改变,显得僵硬 而设置了max-width,实际宽度可以在0~max-width之间,当元素内部宽度不足 ...

  8. 【Dojo 1.x】笔记7 配置对象dojoConfig的内容1:has属性、加载器的属性

    说完了出身,即出身自dojo/_base/目录下的config模块,那就要好好讲讲这对象有什么可以写的属性了. 1. has属性 官方说是用于更好的特征检测的,具体有什么用现在还不得知. 例如: &l ...

  9. springboot 使用 redis

    springboot 自己是实现了一套 redis 缓存框架, 地址: https://www.cnblogs.com/huanggy/p/9473822.html, 通过配置即可轻松愉快地实现 某些 ...

  10. word中字体大小(pt)和网页中css设置font-size时用的px大小对应关系

    pt与px转换关系为 1px= 0.75pt. 所以word中五号字体(10.5pt)在网页中对应的大小为font-size:14px.(10.5 / 0.75 = 14) 初号44pt 小初36pt ...