MySQL数据类型的选择
+++++++++++++++++++++++++++++++++++++++++++
标题: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数据类型的选择的更多相关文章
- Mysql 数据类型及选择原则
MySQL中的数据类型大的方面来分,可以分为:日期和时间.数值,以及字符串.下面就分开来进行总结. 数据库类型的选择对数据库的性能影响很大 1 . 数据类型会影响存储空间的开销 2 . 数据类型会影响 ...
- 05 MySQL数据类型的选择与使用
数据类型的选择 1.CHAR与VARCHAR 存储/检索的方式不同. CHAR是固定长度,而VARCHAR是可变长度 非SQLMode下,超 ...
- 谈谈如何选择合适的MySQL数据类型
MySQL数据类型选择 一 .选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更 ...
- 如何选择合适的MySQL数据类型
一.MySQL数据类型选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更少的CP ...
- MySQL数据类型的最优选择
MySQL数据类型的最优选择 慎重选择数据类型很重要.为啥哩?可以提高性能.原理如下: ● 存储(内存.磁盘).从而节省I/O(检索相同数据情况下) ● 计算.进而 ...
- mysql 数据类型
1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) mediumint(m) ...
- MySQL 数据类型 详解
MySQL 数据类型 详解 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 My ...
- MySQL数据类型——数值类型
1.1.1 整型 整型 占用字节 范围 范围 tinyint 1 -27~27-1 -128~127 smallint 2 -215~215-1 -32768~32767 mediumint 3 -2 ...
- 【转】MySQL数据类型和常用字段属性总结
来源:http://www.jb51.net/article/55853.htm 这里先总结数据类型.MySQL中的数据类型大的方面来分,可以分为:日期和时间.数值,以及字符串.下面就分开来进行总结. ...
随机推荐
- X级联动
前端数据 @{ ViewBag.Title = "Index"; } <script src="~/Scripts/jquery-1.10.2.js"&g ...
- Maven(十一)导入手动创建的Maven 工程
传统的导入方式并不能导入手动创建的Maven工程 因为eclipse项目必须有如图所示文件,才被认为是Eclipse工程 使用Maven方式导入 导入选项中并没有把项目复制到工作空间的选项,这是与传统 ...
- 前端项目git操作命名规范和协作开发流程
前言 一个项目的分支,一般包括主干 master 和 开发分支 dev,以及若干临时分支 分支命名规范 分支: 命名: 说明: 主分支 master 主分支,所有提供给用户使用的正式版本,都在这个主分 ...
- linux下sophos,clamav+clamtk杀毒软件
以deepin为例 avast for linux sophos for linux comodo for linux 目前能够在官网找到. 先说clamav clamav 听说很活跃,clamav是 ...
- Android 图片加载框架 Glide4.x
概述 Glide是一个图片加载框架,使得我们可以轻松的加载和展示图片 Glide4.x新增apply()来进行设置,apply可以调用多次,但是如果两次apply存在冲突的设置,会以最后一次为准 新增 ...
- asp.net core 2.1 部署 centos7
asp.net core 2.1 部署 centos7 Kestrel 非常适合从 ASP.NET Core 提供动态内容. 但是,Web 服务功能不像服务器(如 IIS.Apache 或 Nginx ...
- VSCode的Python扩展下程序运行的几种方式与环境变量管理
在VSCode中编写Python程序时,由于有些地方要使用环境变量,但是发现设置的环境变量有时不起作用,花了点时间研究了一下,过程不表,直接说结论. 首先,环境变量的设置,Python扩展中有三种方式 ...
- lcd参数解释及刷新率计算,LCD时序
一.LCD显示图像的过程如下: 其中,VSYNC和HSYNC是有宽度的,加上后如下: 参数解释: HBP(Horizontal Back Porch)水平后沿:在每行或每列的象素数据开始输出时要插入的 ...
- SpringBoot+Maven多模块项目(创建、依赖、打包可执行jar包部署测试)完整流程
一,创建Maven多模块项目先建立外层父工程 File →new →project 选择Spring Initializr Next下一步到以下页面 工程结构如下 ...
- 小小白搭建nextcloud云盘
我是一名linux的小小白,今天就利用自己的所学搭建属于自己的云盘——nextcloud. 本人学生狗,普通的云盘也要几十块钱,既然我们只是拿来搭建巩固自己知识并不做为生产力,我们就用VMware W ...