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
随机推荐
- 避免重复造轮子的UI自动化测试框架开发
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- iOS总结_UI层自我复习总结
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...
- 【造轮子】打造一个简单的万能Excel读写工具
大家工作或者平时是不是经常遇到要读写一些简单格式的Excel? shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下. 厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式 ...
- DailyTick 开发实录 —— 开始
2009 年我读了李笑来老师的<把时间当朋友>,知识了柳比歇夫的时间记录法.当时激动坏了,马上动手实践起来.一开始的时候,是用一个小本子,走到哪儿都带着.完成一件事,就记录一下花费的时间. ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- WinForm 天猫2013双11自动抢红包【源码下载】
1. 正确获取红包流程 2. 软件介绍 2.1 效果图: 2.2 功能介绍 2.2.1 账号登录 页面开始时,会载入这个网站:https://login.taobao.com/member/login ...
- 神马玩意,EntityFramework Core 1.1又更新了?走,赶紧去围观
前言 哦,不搞SQL了么,当然会继续,周末会继续更新,估计写完还得几十篇,但是我会坚持把SQL更新完毕,绝不会烂尾,后续很长一段时间没更新的话,不要想我,那说明我是学习新的技能去了,那就是学习英语,本 ...
- JavaScript之链式结构序列化
一.概述 在JavaScript中,链式模式代码,太多太多,如下: if_else: if(...){ //TODO }else if(...){ //TODO }else{ //TODO } swi ...
- LINQ to SQL Where条件
1. 适用场景 实现条件的过滤和查询等功能. 2. 说明 跟SQL语句中的where作用相似,都起到了范围的限定即过滤的作用,而判断条件是紧跟后面的条件子句.where主要分为三种形式:简单形式.条件 ...