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 字段类型占用空间的更多相关文章

  1. (转)MySQL字段类型详解

    MySQL字段类型详解 原文:http://www.cnblogs.com/100thMountain/p/4692842.html MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间 ...

  2. MySQL 字段类型介绍

    MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...

  3. MySql 字段类型对应 Java 实体类型

    前言 MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的: 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.Strin ...

  4. MySQL字段类型与操作

    MYSQL字段类型与操作 字符编码与配置文件 操作 代码 功能 查看 \s 查看数据库基本信息(用户.字符编码) 配置(配置文件层面) my-default.ini windows下MySQL默认的配 ...

  5. Mysql字段类型与合理选择

    字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许 ...

  6. MySQL字段类型最全解析

    前言: 要了解一个数据库,我们必须了解其支持的数据类型.MySQL 支持大量的字段类型,其中常用的也有很多.前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类型,本篇 ...

  7. Java JDBC中,MySQL字段类型到JAVA类型的转换

    1. 概述 在使用Java JDBC时,你是否有过这样的疑问:MySQL里的数据类型到底该选择哪种Java类型与之对应?本篇将为你揭开这个答案. 2. 类型映射  java.sql.Types定义了常 ...

  8. MySQL字段类型 约束

    目录 MySQL存储引擎 非空约束 字段类型 整形类型INT TINYINT 浮点类型float 字符类型char varchar 日期类型 枚举集合 约束条件 主键 自增 unsigned无符号 z ...

  9. MySql字段类型及字节

    字段类型:TINYINT-----------------一个很小的整数.有符号的范围是-128到127,无符号的范围是0到255. SMALLINT--------------一个小整数.有符号的范 ...

随机推荐

  1. Elasticsearch技术解析与实战(五)Document解析

    1.手动指定document id 一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据的唯一标识,作为es中document的id. PUT /index/t ...

  2. 你应该了解的强大CSS表达式 ----- expression

    IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javas cript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性.就是说CSS属性后面可以是一 ...

  3. centos6.4下配置nginx服务器更改根目录

    安装完nginx服务器后发现nginx的根目录在/usr/share/nginx/html/下,但是对于部署文件来说,在该目录下是不太习惯的,我就尝试着更改nginx访问的根目录 #  vi /etc ...

  4. Ubuntu 通过 Live CD 更新grub恢复引导Boot Menu

    工作需要更换主板,但是不想重装电脑. 怎么办呢? 其实并不需要重装电脑,只需要回复boot menu即可. 1. 首先用u盘制作一个ubuntu的live CD(请自行百度),然后通过u盘启动, 选择 ...

  5. 键盘ASCII码

    回车键 -- CR 键0x0d   -- 16进制13 -- 10 进制'\r' -- 也可以 换行键 -- LF0x0a   -- 16进制10 -- 10 进制'\n' -- 也可以 esc键   ...

  6. webpack4.5.0+vue2.5.16+vue-loader 实战组件化开发案例以及版本问题中踩的一些大坑!!!

    一 vue-loader 我们先不管脚手架,只说vue-loader,简单讲就是可将.vue文件打包,实现组件化开发,即一个.vue文件就是一个组件,开发中只需要引入这个.vue组件就可以了! 然后. ...

  7. JavaScript 金额、数字、千分位、千分位、保留几位小数、舍入舍去、支持负数

    JavaScript 金额.数字 千分位格式化.保留指定位数小数.支持四舍五入.进一法.去尾法 字段说明: number:需要处理的数字: decimals:保留几位小数,默认两位,可不传: dec_ ...

  8. Flip Bits

    Determine the number of bits required to flip if you want to convert integer n to integer m. Notice ...

  9. 【Python学习笔记】Jupyter Lab目录插件安装

    Jupyter Lab目录插件安装 当然首先你得有python和已经安装了jupyter lab. 1 安装jupyter_contrib_nbextensions 首先先安装jupyter_cont ...

  10. 【内核】几个重要的linux内核文件【转】

    转自:http://www.cnblogs.com/lcw/p/3159394.html Preface 当用户编译一个linux内核代码后,会产生几个文件:vmlinz.initrd.img, 以及 ...