+++++++++++++++++++++++++++++++++++++++++++
标题: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. JDK源码分析(三)—— LinkedList

    参考文档 JDK源码分析(4)之 LinkedList 相关

  2. 关于mysql-connector-net和C#.net

    mysql-connector-net-8.0.11.msi 可以从这里下载:mysql-connector-net-8.0.11   如果使用ado.net链接mysql数据库则只需要引用  MyS ...

  3. [PHP] 控制反转依赖注入的日常使用

    控制反转:控制权交给了自己的类 依赖注入:依赖另一个类,我没有手动去new它 <?php /*我自己要用的类*/ class User { private $name; private $age ...

  4. Java开发笔记(十)一元运算符的技巧

    前面讲到赋值运算符的时候,提到“x = x+7”可以被“x += 7”所取代,当然Java编程中给某个变量自加7并不常见,常见的是给某变量自加1,就像走台阶,一般都是一级一级台阶地走,犯不着一下子跳上 ...

  5. Java 由浅入深GUI编程实战练习(三)

    一,項目介紹 1.可以查看年,月,日等功能.能获取今天的日期,并且能够通过下拉年,月的列表. 2.当程序运行时,显示的时间是系统当前时间. 3.可以手动输入时间,确定后系统跳转到制定的时间. 4.提供 ...

  6. js报错:Uncaught SyntaxError: Unexpected string

    一.问题 今天在写jsp页面时,发现加上某段代码后,页面的其它js就失效了,死活出不来,然后打开谷歌浏览器发现,页面js报如下错误: Uncaught SyntaxError: Unexpected ...

  7. MySQL主从复制配置指导及PHP读写分离源码分析

    开发环境 master环境:ubuntu16.04.5LTS/i5/8G/500G/64位/mysql5.7.23/php7/apache2 slave环境:kvm虚拟机/ubuntu14.04.01 ...

  8. HA总结:AWS 网络连接

    单数据中心 网络HA总结 参考:https://d1.awsstatic-china.com/aws-answers/AWS_Single_Data_Center_HA_Network_Connect ...

  9. 使用Python的列表推导式计算笛卡儿积

    笛卡儿积: 笛卡儿积是一个列表, 列表里的元素是由输入的可迭代类型的元素对构 成的元组,因此笛卡儿积列表的长度等于输入变量的长度的乘积, 如下图: 如果你需要一个列表,列表里是 3 种不同尺寸的 T ...

  10. RHEL 6.6下Python 2.6.6升级到Python 3.6.6

      最近一段时间shell脚本写得很溜,很有成就感,一想到被自己落下的Python就感到十分心虚.开始坚持学习Python!先将自己的测试机器的Python升级到Python 3.6.6.简单整理.记 ...