首页 > 数据库 >MySQL基础篇--执行计划key_len计算

MySQL基础篇--执行计划key_len计算

时间:2022-10-27 17:00:30浏览次数:63  
标签:字节 -- decimal 小数点 len 位数 key 允许 NULL

字符类型

char


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

varchar

varchr(N)变长字段且允许NULL   =  N *( character set:utf8=3,gbk=2,latin1=1)+1(NULL)+2(变长字段)
varchr(N)变长字段且不允许NULL = N * ( character set:utf8=3,gbk=2,latin1=1)+2(变长字段)


数字类型

TINYINT

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

SMALLINT

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

INT

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

BIGINT

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

日期类型

DATETIME

日期时间型的key_len计算:(针对mysql5.5及之前版本)
DATETIME允许为NULL= 8 + 1(NULL)
DATETIME不允许为NULL = 8


日期时间型的key_len计算:(针对mysql5.6.4及之后的版本)
DATETIME允许为NULL= 5 + 1(NULL)
DATETIME不允许为NULL = 5

TIMESTAMP

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


decima

根据官方文档可以知道,decimal定义为decimal(M,D),其中,M是总的位数,D是小数点后保留的位数。
小数点前与小数点后的数字分开存储,且以9位数为1组,用4个字节保存,如果低于9位数,需要的字节数如下:

Leftover Digits Number of Bytes
-----------------------------
|0 |0 |
|1-2 |1 |
|3-4 |2 |
|5-6 |3 |
|7-9 |4 |
-----------------------------

例如:
•decimal(20,6)=> 小数点左边14位,小数点右边6位 => 小数点左边分组为5 + 9,需要3个字节+4个字节存储,小数点右边一个分组,需要3个字节存储 => 总共需要10个字节
•decimal(18,9)=> 小数点左边9位数,小数点右边9位数 => 分别使用4个字节存储 => 共需要 8个字节
•decimal(18,2)=> 小数点左边16位数,小数点右边2位数 => 分组为7 + 9,需要8个字节存储,小数点右边1个字节存储 => 共需要9个字节


•decima

标签:字节,--,decimal,小数点,len,位数,key,允许,NULL
From: https://blog.51cto.com/u_13874232/5801350

相关文章

  • HTML标签_表单标签_表单项select&textarea与HTML标签_案例1_注册页面
    HTML标签_表单标签_表单项select&textarea select:下拉列表 子元素:option,指定列表项 textarea:......
  • *PAT_甲级_1053 Path of Equal Weight (30分) (C++)【数组排序/DFS】
    目录​​1,题目描述​​​​ 题目大意​​​​输入​​​​输出​​​​2,思路​​​​数据结构 ​​​​如何排序 ​​​​如何设计DFS算法​​​​3,心路历程​​​​4,代......
  • 060_索引及文档基本操作
    目录基本Rest命令关于索引的基本操作创建索引及文档创建索引,指定字段类型查询索引创建索引及文档查询索引及文档默认的信息扩展命令修改索引PUT覆盖POST修改删除索引关于文......
  • Salesforce中文课程学习,关于动态表单制作技巧都在这里!
    动态表单的前提是创建以用户为中心的、直观的页面布局,在正确的时间显示正确信息。随着时间的推移,页面布局或Lightning页面中的“详细信息”部分可能会被字段塞满。这些字......
  • 070_文档复杂搜索
    目录查询query匹配match匹配文档hits匹配文档总数total:value匹配关系total:relation最大匹配分值(匹配度)max_score匹配分值(匹配度)_score结果过滤_source排序s......
  • C#操作注册表之Registry类
    https://www.jb51.net/article/247960.htm提供表示Windows注册表中的根项的 RegistryKey 对象,并提供访问项/值对的 static 方法。继承层次结构System.Object  ......
  • matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类|附代码数据
    全文下载链接:tecdat.cn/?p=19751本示例说明如何使用长短期记忆(LSTM)网络对序列数据进行分类 ( 点击文末“阅读原文”获取完整代码数据******** ) 。要训练深度神经网络......
  • 090_索引和文档的API操作
    目录注入RestHighLevelClient关于索引的API操作创建索引判断索引是否存在删除索引关于文档的API操作创建实体类添加文档判断文档是否存在获取文档更新文档删除文档大批量文......
  • 命令执行(1)
    web29-web42参考博客1参考博客21、web29题目:error_reporting(0);if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/flag/i",$c)){eval($c);}......
  • 使用伪元素 before 叹号
    .tip {  width: 400px;  line-height: 150%;  border-left-color: #f66;  color: #666;  padding: 12px 24px 12px 30px;  margin: 2em 1em......