MySql常用数据类型分析
整数类型
TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT
- 分别使用8,16,24,32,64位存储空间,值得范围-2的(N-1)方到2的(N-1)方-1。根据需要存储的范围大小,选择最小的数据类型。根据实际情况,选择使用UNSIGNED属性。
- 数据类型只决定怎么保存数据,计算一般使用BIGINT整数。
- 整数可以指定宽度,例如INT(11)。一般是没有意义的,不会限制值得合法范围,只是规定交互工具的显示位数。对于存储和计算,INT(1)和INT(20)是一样的。
实数类型
FLOAT、DOUBLE、DECIMAL
- 因为CPU不支持对DECIMAL计算,CPU支持原生浮点计算,所以浮点计算更快。
- 浮点和DECIMAL都可以指定精度,但是对浮点的精度,MySql一般选择不同的数据类型或者存储时对值进行取舍,都是非标准的,所以建议只指定数据类型,不指定精度。
- 浮点的使用空间比DECIMAL小,FLOAT使用4个字节,DOUBLE使用8个字节,有更高的精度和范围,所以MySql内部使用DOUBLE计算浮点。
- 一般情况下实数类型选择浮点类型,如果需要对小数精确计算使用DECIMAL。如果数据量比较大,可以使用BIGINT代替DECIMAL,程序控制小数点位数。
字符串类型
varchar、char、blob、text
- varchar类型用于存储可变长的字符串,比定长类型更节省空间。(有例外的情况,如果使用ROW_FORMAT=FIXED创建的话,每一行都会使用定长存储,但是varchar需要使用1或2个额外的字节记录字符串的长度。)
- 使用varchar的情况:字符串的最大长度比平均长度大很多;列的更新很少,所以不会有碎片;
- char类型是定长的,适合存储很短的字符串,或者所有值接近同一个长度,例如MD5值。
- 一般情况下都可以选择varchar类型,但是注意只分配真正需要的空间。
日期和时间类型
DATETIME、TIMESTAMP
- DATETIME能保存从1001年到9999年,精度为妙,与时区无关。而TIMESTAMP只能保存1970年到2038年,显示的值依赖于时区。
- TIMESTAMP拥有DATETIME没有的属性,如果在插入时没有指定第一个TIMESTAMP值,MySql则设置这个列的值为当前时间。在更新一个记录时,MySql会默认更新第一个TIMESTAMP值(除非在UPDATE时指定了值)。TIMESTAMP默认为NOT NULL。
- 除了特殊情况下,尽量使用TIMESTAMP,因为它比DATETIME的效率更高。
MySql常用数据类型分析的更多相关文章
- MySQL数据库3 - MySQL常用数据类型
一. MySql常用数据类型 数据类型:整数(tinyint smailint int bigint) 定点数 decimal(p,s) ------ 小数点位置固定的 ---> 数 ...
- Mysql常用数据类型
Mysql常用数据类型 数字: 字符串: 时间:
- Mysql常用数据类型归纳总结1
一直在用Mysql数据库,Mysql的数据类型也最常打交道的.但关于Mysql的一些常用数据类型了解程度仅限于一知半解,仅仅能满足满足于平时一些最简单的操作.而Mysql常用数据类型的定义以及规范理解 ...
- Mysql常用数据类型详细说明及实例说明(学习笔记一)
1.Mysql 在windows下 Net start mysql[启动] Net stop mysql[停止] Quit[退出mysql命令行] \c[取消输入的命令] Select version ...
- Mysql 常用数据类型 占用字节数 [转]
数据类型是定义列中可以存储什么数据以及该数据实际怎么存储的基本规则.Mysql的常用数据类型主要有: 串数据类型:最常用的数据类型,有两种基本的串类型:分别为定长串和不定长串.定长串结束长度固定的字符 ...
- MySQL常用数据类型 length 专题
MySQL-data_type数据类型 1.查看数据类型 mysql> help data type //通过help对数据进行查看,以及使用的方法 2.MySQL常见的数据类型 整数in ...
- MySQL常用数据类型小结
在 MySQL 中,有三种主要的类型:字符串.数字和日期/时间类型. 目录 [隐藏] 1 字符串类型 2 数值类型 3 日期和时间类型 4 使用建议 5 艺搜参考 字符串类型 CHAR 0-255字 ...
- MySQL常用数据类型及细节
目录 1 整数类型 1.1 可选属性 1.1.1 M 1.1.2 UNSIGNED 1.1.3 ZEROFILL 2 浮点类型 2.1 精度误差 3 定点数类型 3.1 数据精度说明 3.2 类型介绍 ...
- mysql常用数据类型的选择
时间戳可以用int来存储 ip地址的存储数据类型,可以使用INET_ATON 和INET_NTOA来配合bigint类型来代替varchar
随机推荐
- 在Openfire上弄一个简单的推送系统
推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这 ...
- Sublime Text3配置在可交互环境下运行python快捷键
安装插件 在Sublime Text3下面写代码感觉很不错,但是写Python的时候遇到了一些问题. 用Sublime Text3打开python文件,或者在Sublime Text3下写好pytho ...
- C语言 · 4_2找公倍数
问题描述 这里写问题描述. 打印出1-1000所有11和17的公倍数. 样例输入 一个满足题目要求的输入范例.例:无 样例输出 与上面的样例输入对应的输出.例: 代码如下: #include< ...
- JS魔法堂:不完全国际化&本地化手册 之 理論篇
前言 最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...
- VS2015在创建项目时的一些注意事项
一.下面是在创建一个新的项目是我最常用的,现在对他们一一做一个详细的介绍: 1.Win32控制台应用程序我平时编写小的C/C++程序都用它,它应该是用的最多的. 2.名称和解决方案名称的区别:名称是项 ...
- PHP设计模式(六)原型模式(Prototype For PHP)
原型设计模式: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型设计模式简单的来说,顾名思义, 不去创建新的对象进而保留原型的一种设计模式. 缺点:原型设计模式是的最主要的缺点就 ...
- 原生JavaScript实现hasClass、addClass、removeClass、toggleClass
兼容IE6+,因IE6.IE7.IE8不支持Array.prototype.indexOf()和String.prototype.trim(),分别用Polyfill实现支持. 详细: indexOf ...
- Kotlin的android扩展:对findViewById说再见(KAD 04)
作者:Antonio Leiva 时间:Dec 12, 2016 原文链接:http://antonioleiva.com/kotlin-android-extensions/ 你也许已厌倦日复一日使 ...
- git init和git init -bare区别
1 Git init 和 git init –bare 的区别 用"git init"初始化的版本库用户也可以在该目录下执行所有git方面的操作.但别的用户在将更新push上来的 ...
- Lesson 21 Mad or not?
Text Aeroplanes are slowly driving me mad. I live near an airport and passing planes can be heard ni ...