当前位置:网站首页>mysql中的字段如何选择合适的数据类型呢?
mysql中的字段如何选择合适的数据类型呢?
2022-07-21 19:21:00 【运维家】
前面两篇我们介绍了很多种数据类型,那么有没有看花眼呢,我们在
mysql
中创建数据表的时候,到底应该选择哪一种数据类型呢?这次我们就来简单的梳理一下子把。
准则
我们不论要如何创建数据表,首先我们需要一个准则,什么准则呢?
就是说,我们要保证在任何情况下均应该使用最精确的类型,即在所有可以表示该列值的类型中,该类型使用的存储最少。
整数和浮点数
如果不需要小数部分,就使用整数来保存数据;如果需要表示小数部分,就使用浮点数类型。
对于浮点数据列而言,存入的数值会对该列定义的小数位进行四舍五入。
怎么个意思呢?来,举个例子:
假设某一列的值的范围为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环境下搭建网站。
边栏推荐
- What is the fastapi asynchronous framework? (comprehensive understanding)
- std::thread 与类对象结合
- @resource和@autowired的区别
- Don't step on the "hidden rules" of those testers in the interview
- 从零复现PyTorch版(3)
- AtCoder Beginner Contest 260 E - At Least One
- Door to door appointment procedure official account module perfect version
- Notes on energy principle and variational method 07: variational problem of multiple self variable functions + variational method of conditional extreme value problem + thinking in Chapter 1
- OSPF comprehensive experiment
- 黑客赏金猎人平台之Immunefi
猜你喜欢
Don't step on the "hidden rules" of those testers in the interview
Baidu PaddlePaddle easydl x wesken: see how to install the "eye of AI" in bearing quality inspection
从零复现PyTorch版(3)
El table column nested El table column, horizontal scrolling bug of multi-level header
New product release: VGA display driver module for bus video monitoring
The "five grades" officially recognized by the tester, let's see what stage you are in?
Energy principle and variational method note 09: examples of virtual work principle
The latest Hubei construction special worker (construction elevator) simulation question bank and answers in 2022
Dof景深基础
Unity Scrollview scroll to the specified position
随机推荐
能量原理与变分法笔记09: 虚功原理的例子
Is it safe for Dongfang fortune to open an account? What certificates do you need
Analyze a ros2 cmakelists in detail Txt file
C#实现给PDF文档设置过期时间
新品发布:总线视频监控专用VGA显示驱动模组
金仓数据库KMonitor使用指南--2. 监控指标
国内外接口文档工具哪家强?
金仓数据库KMonitor使用指南--3. 部署
2022年最新湖北建筑八大员(机械员)模拟考试题库及答案
金仓数据库KingbaseES安全指南--2.1. 关于数据库安全威胁
BigInteger :new BigInteger(tokenJson.getBytes()).toString(16)什么意思
Leetcode skimming: dynamic planning 02 (climbing stairs)
一些个人理解
OSPF comprehensive experiment
Wallpaper background wall / avatar / dynamic wallpaper applet source code - support user submissions - with some collection functions + building tutorials
[814. Binary tree pruning]
QT creator 8 release
Immunefi of hacker bounty hunter platform
Laundry applet source code - add docking with third-party errands
公司新来一个同事,把 Typora 玩得炉火纯青!太强悍了