zoukankan      html  css  js  c++  java
  • mysql explain中key_len的计算

    ken_len表示索引使用的字节数,根据这个值,就可以判断索引使用情况,特别是在组合索引的时候,判断是否所有的索引字段都被查询用到。

    key_len显示了条件检索子句需要的索引长度,但 ORDER BY、GROUP BY 子句用到的索引则不计入 key_len 统计值;

    关于 key_len 的计算规则:

    • 当索引字段为定长数据类型,比如:char,int,datetime,需要有是否为空的标记,这个标记需要占用1个字节;
    • 当索引字段为变长数据类型,比如:varchar,除了是否为空的标记外,还需要有长度信息,需要占用2个字节;
    • 当字段定义为非空的时候,是否为空的标记将不占用字节;
    • 同时还需要考虑表所使用字符集的差异,latin1编码一个字符1个字节,gbk编码一个字符2个字节,utf8编码一个字符3个字节;

    key_len长度的计算公式

    • varchr(10)变长字段且允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)+1(NULL标记位)+2(变长字段)
    • varchr(10)变长字段且不允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)+2(变长字段)
    • char(10)固定字段且允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)+1(NULL标记位)
    • char(10)固定字段且不允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)

  • 相关阅读:
    如何在HTML5 图片预览
    js本地图片预览代码兼容所有浏览器
    c#无损高质量压缩图片
    c#如何在win7下设置IE代理的完美解决方案
    关于Android 访问权限设置
    在asp.net mvc中将checkbox传到后台时总是true的解决方法
    IO流
    Map集合重要练习
    Map笔记总结
    泛型笔记
  • 原文地址:https://www.cnblogs.com/yuyue2014/p/4339762.html
Copyright © 2011-2022 走看看