文档章节

Mysql key_len计算公式

ax2472
 ax2472
发布于 2018/01/11 17:05
字数 369
阅读 56
收藏 0

varchr类型数据的key_len的长度计算公式:
varchr(10)变长字段且允许NULL  =  10 * ( character set:utf8mb4=4,=3utf8=3,gbk=2,latin1=1)+1(NULL)+2(变长字段)
varchr(10)变长字段且不允许NULL  =  10 *( character set:utf8mb4=4,utf8=3,gbk=2,latin1=1)+2(变长字段)

char(10)固定字段且允许NULL  =  10 * ( character set:utf8mb4=4,utf8=3,gbk=2,latin1=1)+1(NULL)
char(10)固定字段且不允许NULL  =  10 * ( character set:utf8mb4=4,utf8=3,gbk=2,latin1=1)

数值数据的key_len计算公式:

tinyint允许NULL = 1 + 1(NULL)
tinyint不允许NULL = 1

smallint允许为NULL = 2+1(NULL)
smallint不允许为NULL = 2

int允许为NULL = 4+1(NULL)
int不允许为NULL = 4

long允许为NULL = 8+1(NULL)
long不允许为NULL = 8

日期时间型的key_len计算公式:(针对mysql5.6及之前版本 编码utf8mb4)

datetime允许为NULL =  5 + 1(NULL)
datetime不允许为NULL = 5

timestamp允许为NULL = 4 + 1(NULL)
timestamp不允许为NULL = 4

例如order表其中一个字段:

1,如`order_no` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL

则key_len = 10 * 3 + 2 + 1 = 33

2,如`order_no` varchar(10) COLLATE utf8_unicode_ci NOT NULL

则key_len = 10 * 3 + 2 = 32

3,如`order_no` char(10) COLLATE utf8_unicode_ci DEFAULT NULL

则key_len = 10 * 3 + 1 = 31

4,如`order_no` char(10) COLLATE utf8_unicode_ci NOT NULL

则key_len = 10 * 3 = 30

© 著作权归作者所有

ax2472
粉丝 6
博文 16
码字总数 7982
作品 0
深圳
程序员
私信 提问
加载中

评论(0)

MySQL查询计划key_len全知道

本文首先介绍了MySQL的查询计划中kenlen的含义;然后介绍了keylen的计算方法;最后通过一个伪造的例子,来说明如何通过keylen来查看联合索引有多少列被使用。 keylen的含义 在MySQL中,可以通过...

李_正
2016/04/15
32
0
MySQL性能优化(四)-- MySQL explain详解

转载地址:https://juejin.im/post/5d141528e51d4577565367d0 MySQL中的explain命令显示了mysql如何使用索引来处理select语句以及连接表。explain显示的信息可以帮助选择更好的索引和写出更优...

KoMiles
2019/10/15
0
0
MySQL 索引 explain索引分析优化

EXPLAIN是MySQL提供的工具,可用于模拟优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句的,包括表的读取顺序、数据读取操作的操作类型、可能使用的索引、实际使用的索引、表之间的引...

PeakFang-BOK
2018/11/13
61
0
10 分钟让你明白 MySQL 是如何利用索引的

一、前言 在MySQL中进行SQL优化的时候,经常会在一些情况下,对 MySQL 能否利用索引有一些迷惑。 譬如: MySQL 在遇到范围查询条件的时候就停止匹配了,那么到底是哪些范围条件? MySQL 在LIK...

高效运维
2019/08/05
0
0
mysql select 执行过程查询关键字 explain

语法:explain select .... 变体: 1. explainextended select .... 将执行计划“反编译”成select语句; 运行showwarnings 可以得到被mysql优化器优化后的语句 2. explainpartitions selec...

常翔
2013/11/22
425
0

没有更多内容

加载失败,请刷新页面

加载更多

Java高级面试攻略:消息+缓存+高并发+高可用+架构+分布式+微服务

Java高级面试攻略:消息+缓存+高并发+高可用+架构+分布式+微服务,对每一个专题每一道列举出来的高频面试题,都会做一个面试官的心理分析以及题目的具体剖析,教你如何破解,攻克面试官! 攻...

眉目清俊
17分钟前
23
0
JavaScript 数组遍历方法的对比

前言 JavaScript 发展至今已经发展出多种数组的循环遍历的方法,不同的遍历方法运行起来那个比较快,不同循环方法使用在那些场景,下面将进行比较: 各种数组遍历的方法 for 语句 代码: var arr...

osc_fscujk71
25分钟前
11
0
Nginx和Tomcat配置https

Nginx配置htpps http{ #http节点中可以添加多个server节点 server{ #监听443端口 listen 443; #对应的域名,把baofeidyz.com改成你们自己的域名就可以了 ...

chinahufei
25分钟前
5
0
react调用方法

React里调用方法常见的方式有两种 (1)触发时通过回调函数触发 <Button type="primary" onClick={()=>this.updateBar()}>更新</Button> (2)直接通过方法名触发 <Button type="primary" o......

osc_vpogdtu8
26分钟前
26
0
Centos通过代理上网

阿里云ECS不能访问内外,购买NAT的除外,通过windows主机代理上网: 1.windows上安装代理工具,工具种类比较多,我这里使用的是privoxy 下载地址:http://www.privoxy.org/ 百度云盘(备用)...

osc_r94nrknb
28分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部