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--------------一个小整数.有符号的范 ...
随机推荐
- Visual Studio Code 教程之————入门篇
Visual Studio代码是一个轻量级但功能强大的源代码编辑器,可在您的桌面上运行,适用于Windows,macOS和Linux.它内置对JavaScript,TypeScript和Node.js ...
- [转载]memset()的效率
http://blog.csdn.net/hackbuteer1/article/details/7343189 void *memset(void *s, int ch, size_t n); 作用 ...
- 20155217 2016-2017-2 《Java程序设计》第4周学习总结
20155217 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 在java中,继承时使用extends关键字,private成员也会被继承,只不过子 ...
- 微服务深入浅出(11)-- SpringBoot整合Docker
添加Dockerfile 在目录src/main/resources目录下店家Dockerfile文件: From java MAINTAINER "Eric"<eric.l ...
- Infinite Fraction Path(HDU6223 + bfs + 剪枝)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6223 题目: 题意: 给你一个长度为n的数字串,开始时你选择一个位置(记为i,下标从0开始)做为起点 ...
- QByteArray储存二进制数据(包括结构体,自定义QT对象)
因为利用QByteArray可以很方便的利用其API对内存数据进行访问和修改, 构建数据库blob字段时必不可少; 那如何向blob内写入自定义的结构体和类 //自定义person结构体 typede ...
- ajax.BeginForm异步提交表单并显示更新数据
view代码: <!--基本信息模块--> 2 <div class="profile_box" id="basicInfo"> 3 & ...
- Codeforces Round #505
Codeforces Round #505 A. Doggo Recoloring 题目描述:给定一个字符串,每次选择一个在字符串里面出现至少两次的字符,然后将这种字符变成那一种指定的字符,问最终这个 ...
- 牛x的JavaScript编辑器你知道几个
英文:Martin Heller 译文:葡萄城控件 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群343599877,我们一起学前端! 对于JavaScript程序员来说,目前有很 ...
- 两行代码搞定js对象深浅拷贝
有一段时间没有更新博客了,忙于工作.2018年刚过去,今天来开启2018第一篇博文.好了,咱们步入正题. 先上代码 /** * 遍历对象 * 1.判断是不是原始值 * 2.判断是数组还是对象 * 3. ...