MySQL 字段类型占用空间
MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。
首先来看下各类型的存储需求(即占用空间大小):
数值类型存储需求
列类型 | 存储需求 |
---|---|
TINYINT | 1个字节 |
SMALLINT | 2个字节 |
MEDIUMINT | 3个字节 |
INT, INTEGER | 4个字节 |
BIGINT | 8个字节 |
FLOAT(p) | 如果0 <= p <= 24为4个字节, 如果25 <= p <= 53为8个字节 |
FLOAT | 4个字节 |
DOUBLE [PRECISION], item REAL | 4个字节 |
DECIMAL(M,D), NUMERIC(M,D) | 变长(0-4个字节) |
BIT(M) | 大约(M+7)/8个字节 |
int(10)这里的10指的是数值的宽度,并不是字节
日期和时间类型的存储需求
列类型 | 存储需求 |
---|---|
DATE | 3个字节 |
DATETIME | 8个字节 |
TIMESTAMP | 4个字节 |
TIME | 3个字节 |
YEAR | 1个字节 |
字符串类型的存储需求
列类型 | 存储需求 |
---|---|
CHAR(M) | M个字节,0 <= M <= 255 |
VARCHAR(M) | L+1个字节,其中L <= M 且0 <= M <= 65535 |
BINARY(M) | M个字节,0 <= M <= 255 |
VARBINARY(M) | L+1个字节,其中L <= M 且0 <= M <= 255 |
TINYBLOB, TINYTEXT | L+1个字节,其中L < 28 |
BLOB, TEXT | L+2个字节,其中L < 216 |
MEDIUMBLOB, MEDIUMTEXT | L+3个字节,其中L < 224 |
LONGBLOB, LONGTEXT | L+4个字节,其中L < 232 |
ENUM(‘value1’,’value2’,…) | 1或2个字节,取决于枚举值的个数(最多65,535个值) |
SET(‘value1’,’value2’,…) | 1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员) |
上表的M只是为了说明占用空间大小,在实际创建表中char(20)、varchar(20),20指的是字符而不是字节(4.0版本以上,以下指的是字节);那么字符和字节的转换要看字符集,utf-8下,1字符=3字节;gbk下,1字符=2字节。
接下来会剖析varchar最大长度和text占用空间问题。
参考来源:https://blog.csdn.net/free_ant/article/details/52936722
MySQL 字段类型占用空间的更多相关文章
- (转)MySQL字段类型详解
MySQL字段类型详解 原文:http://www.cnblogs.com/100thMountain/p/4692842.html MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间 ...
- MySQL 字段类型介绍
MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...
- MySql 字段类型对应 Java 实体类型
前言 MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的: 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.Strin ...
- MySQL字段类型与操作
MYSQL字段类型与操作 字符编码与配置文件 操作 代码 功能 查看 \s 查看数据库基本信息(用户.字符编码) 配置(配置文件层面) my-default.ini windows下MySQL默认的配 ...
- Mysql字段类型与合理选择
字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许 ...
- MySQL字段类型最全解析
前言: 要了解一个数据库,我们必须了解其支持的数据类型.MySQL 支持大量的字段类型,其中常用的也有很多.前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类型,本篇 ...
- Java JDBC中,MySQL字段类型到JAVA类型的转换
1. 概述 在使用Java JDBC时,你是否有过这样的疑问:MySQL里的数据类型到底该选择哪种Java类型与之对应?本篇将为你揭开这个答案. 2. 类型映射 java.sql.Types定义了常 ...
- MySQL字段类型 约束
目录 MySQL存储引擎 非空约束 字段类型 整形类型INT TINYINT 浮点类型float 字符类型char varchar 日期类型 枚举集合 约束条件 主键 自增 unsigned无符号 z ...
- MySql字段类型及字节
字段类型:TINYINT-----------------一个很小的整数.有符号的范围是-128到127,无符号的范围是0到255. SMALLINT--------------一个小整数.有符号的范 ...
随机推荐
- Elasticsearch技术解析与实战(五)Document解析
1.手动指定document id 一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据的唯一标识,作为es中document的id. PUT /index/t ...
- 你应该了解的强大CSS表达式 ----- expression
IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javas cript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性.就是说CSS属性后面可以是一 ...
- centos6.4下配置nginx服务器更改根目录
安装完nginx服务器后发现nginx的根目录在/usr/share/nginx/html/下,但是对于部署文件来说,在该目录下是不太习惯的,我就尝试着更改nginx访问的根目录 # vi /etc ...
- Ubuntu 通过 Live CD 更新grub恢复引导Boot Menu
工作需要更换主板,但是不想重装电脑. 怎么办呢? 其实并不需要重装电脑,只需要回复boot menu即可. 1. 首先用u盘制作一个ubuntu的live CD(请自行百度),然后通过u盘启动, 选择 ...
- 键盘ASCII码
回车键 -- CR 键0x0d -- 16进制13 -- 10 进制'\r' -- 也可以 换行键 -- LF0x0a -- 16进制10 -- 10 进制'\n' -- 也可以 esc键 ...
- webpack4.5.0+vue2.5.16+vue-loader 实战组件化开发案例以及版本问题中踩的一些大坑!!!
一 vue-loader 我们先不管脚手架,只说vue-loader,简单讲就是可将.vue文件打包,实现组件化开发,即一个.vue文件就是一个组件,开发中只需要引入这个.vue组件就可以了! 然后. ...
- JavaScript 金额、数字、千分位、千分位、保留几位小数、舍入舍去、支持负数
JavaScript 金额.数字 千分位格式化.保留指定位数小数.支持四舍五入.进一法.去尾法 字段说明: number:需要处理的数字: decimals:保留几位小数,默认两位,可不传: dec_ ...
- Flip Bits
Determine the number of bits required to flip if you want to convert integer n to integer m. Notice ...
- 【Python学习笔记】Jupyter Lab目录插件安装
Jupyter Lab目录插件安装 当然首先你得有python和已经安装了jupyter lab. 1 安装jupyter_contrib_nbextensions 首先先安装jupyter_cont ...
- 【内核】几个重要的linux内核文件【转】
转自:http://www.cnblogs.com/lcw/p/3159394.html Preface 当用户编译一个linux内核代码后,会产生几个文件:vmlinz.initrd.img, 以及 ...