InnoDB 存储引擎对 CHAR 类型的处理
来源:互联网 发布:光翼学园网络班录屏 编辑:程序博客网 时间:2024/06/05 06:35
测试基于 InnoDB 存储引擎,行记录格式为 compact。
在单字节字符集下(测试用的是 latain1)
- 如果 CHAR 类型存储的是 NULL,只占用 1 bit 空间,即 NULL 标志位。
- 如果存储的是非 NULL 值时,会占满指定的空间。比如 CHAR(10),存储除 NULL 之外的其它值时,一定会占 10 bytes 空间,不足用
\x20
填充。
在多字节字符集下(测试用的是 utf8mb4)
- 如果 CHAR 类型存储的是 NULL,只占用 1 bit 空间,即 NULL 标志位。
- 如果存储的是非 NULL 值时
- 至少占用与指定值相等的字节空间,比如 CHAR(10),至少会占用 10 bytes 空间,如果存储的内容超过了 10 bytes (对于 ubf8mb4 编码来说,CHAR(10) 最多能存储 40 bytes 内容),那么只占用实际占用的字节数。总结一下就是,对于 CHAR(n),如果占用的空间字节数少于 n,会用
\x20
填充,大于等于 n 的话,不需再填充。 - 会用额外字节来记录 CHAR 类型字段实际占用的字节数,这与 VARCHAR 类似。
- 至少占用与指定值相等的字节空间,比如 CHAR(10),至少会占用 10 bytes 空间,如果存储的内容超过了 10 bytes (对于 ubf8mb4 编码来说,CHAR(10) 最多能存储 40 bytes 内容),那么只占用实际占用的字节数。总结一下就是,对于 CHAR(n),如果占用的空间字节数少于 n,会用
参考
- InnoDB的行溢出数据,Char的行结构存储
阅读全文
0 0
- InnoDB 存储引擎对 CHAR 类型的处理
- Mysql的存储引擎的类型,MyISAM&InnoDB等
- 关于InnoDB存储引擎text和blob类型的优化
- 对InnoDB和MyISAM存储引擎的理解
- InnoDB存储引擎 --mysql的存储引擎
- MySQL的存储引擎INNODB
- innodb存储引擎的线程
- innodb存储引擎的体系结构
- Innodb存储引擎的特性
- mysql的存储引擎innodb、myisam对插入影响和索引对插入的影响
- MySQL的表类型的(存储引擎)的选择MyISAM+InnoDB+MEMORY+MERGE
- MySQL数据库中MyISAM存储引擎和InnoDB存储引擎在遇到未定义的值时的处理方式
- MySQL将某个数据库下的所有表的存储引擎修改为InnoDB类型语句
- Mysql的存储引擎之:InnoDB存储引擎
- 第15章:存储引擎和表类型#innodb的性能调整
- oracle的char类型对空格的怪异处理
- oracle的char类型对空格的怪异处理
- MySQL InnoDB存储引擎的参数详解
- MVC ---- 创建一个视图调用函数V
- 51822 SDK12.3 fstorage的使用
- JavaScript 删除数组中一个元素--delete与赋值为undefined方法比较
- freemarker 设置编码
- RabbitMQ消息分发模式----"Publish/Subscribe"发布/订阅模式
- InnoDB 存储引擎对 CHAR 类型的处理
- C语言strerror错误代码与其对应内容
- 理解单例模式
- 云服务器 ECS CentOS 7配置默认防火墙 Firewall
- PHP接口开发签名验证原理详解
- AtCoder-2362 (dfs+优化)
- python:html元素解析
- (36)RuntimeException和创建自定义的RuntimeException子异常类和一些例子
- POJ 2229 Sumsets