Explain之key_len长度计算】的更多相关文章

以前我很好奇通过执行计划Explain去分析SQL的时候看到的key_len值有时很小,有时看到很大,那时也不知道它是怎么算出来的,现在终于搞懂了,嘻.因为网上对key_len的长度的计算的资料也很少,官网也如此.我相信还有很多人不关心key_len的值是怎么来的,或者key_len有什么用的.key_len表示索引使用的字节数,根据这个值,就可以判断索引使用情况,特别是在组合索引的时候,判断所有的索引字段是否都被查询用到.好啦,废话不多说,我们通过例子来说明吧! 在说key_len长度计算长度…
今天丁原问我mysql执行计划中的key_len是怎么计算得到的,当时还没有注意,在高性能的那本书讲到过这个值的计算,但是自己看执行计划的时候一直都没有太在意这个值,更不用说深讨这个值的计算了: ken_len表示索引使用的字节数,根据这个值,就可以判断索引使用情况,特别是在组合索引的时候,判断所有的索引字段都被查询用到. 在查看官方文档的时候,也没有发现详细的key_len的计算介绍,后来做了一些测试,在咨询了丁奇关于变长数据类型的值计算的时候,突然想到innodb 行的格式,在这里的计算中有…
ken_len表示索引使用的字节数,根据这个值,就可以判断索引使用情况,特别是在组合索引的时候,判断是否所有的索引字段都被查询用到. key_len显示了条件检索子句需要的索引长度,但 ORDER BY.GROUP BY 子句用到的索引则不计入 key_len 统计值: 关于 key_len 的计算规则: • 当索引字段为定长数据类型,比如:char,int,datetime,需要有是否为空的标记,这个标记需要占用1个字节:• 当索引字段为变长数据类型,比如:varchar,除了是否为空的标记外…
通常在优化SQL查询的时候,我们都会使用explain分析SQL执行计划,通常来说当用到组合索引的时候我们如何判断索引完全用上呢?当然高手看看表结构及SQL语句就知道到底用到了几个字段,对于不熟悉的同学呢?我们还是可以看看key_len的长度,当然这个计算还是有点复杂的,不过在你看过我这篇博客以后,相信你肯定会计算的,这难不倒聪明的你. 废话不多说了,我们直接上例子.表结构如下.^_^ mysql [localhost] {msandbox} (yayun) > show create tabl…
前言:当用Explain查看SQL的执行计划时,里面有列显示了 key_len 的值,根据这个值可以判断索引的长度,在组合索引里面可以更清楚的了解到了哪部分字段使用到了索引.下面演示中,表结构的合理性这边暂且不说,只是证明一下索引长度的计算方法.目前大部分博文是字符类型的索引长度计算方法,下面列举几个类型的索引长度计算方法 1.整数类型 (dg1)root@127.0.0.1 [mytest]> desc table_key; +---------+-------------+------+--…
mysql explain中key_len的作用key_len越小 索引效果越好 name的字段类型是varchar(20),字符编码是utf8,一个字符占用3个字节,那么key_len应该是 20*3=60. <pre>mysql> explain select * from `member` where name='fdipzone';+----+-------------+--------+------+---------------+------+---------+------…
接着上一篇文章说 因为代码简短且思路简单 所以我就把这几个功能汇总为一篇文章 因为我之前就是做游戏外挂的 经过验证核实,**飞车的复位点检测.圈数检测就是以下的方法实现的 至于反向检测和赛道长度计算,没去深入研究,不过应该也八九不离十 在告诉大家个小秘密: **飞车的复位点检测和圈数检测利用以下文章中的代码思路可以做出外挂 感兴趣的可以试试!我只是技术交流,不是传播外挂,别打我 复位点检测优化: 首先感谢 @太粗难进 他的原话: “不过 你知道 高架桥么?就是 如果大的轮船经过 会 把 桥 中间…
js字符串长度计算(一个汉字==两个字符)和字符串截取 String.prototype.realLength = function() { return this.replace(/[^\x00-\xff]/g, "**").length; // [^\x00-\xff] - 匹配非双字节的字符 }; String.prototype.realSubstring = function(n){ var str = this||''; if(this.realLength()<=n…
我们知道,在c语言中,使用sizeof ()计算在内存中占用的字节数, 引用string.h后,使用strlen()计算字符串的长度(不包含\0). 而在object-c中, "length"这个方法,可以返回字符串的长度. 比如:NSString * str =@"12345";int a = 0; a = [str  lenght];此时a的值就是字符串str的长度,也就是5. 值得一提的是oc 中length方法在计算字符串长度时和c有几点不同,在c中,如果字…
key_len表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在组合索引的时候,判断该索引有多少部分被使用到非常重要. 在计算key_len时,下面是一些需要考虑的点: 索引字段的附加信息: 可以分为变长和定长数据类型讨论: 当索引字段为定长数据类型时,如char,int,datetime,需要有是否为空的标记,这个标记占用1个字节(对于not null来说不需要这1个字节): 当索引字段为变长数据类型时,如varchar,除了是否为空的标记外,还需要有长度信息,需要占用2个字节:…
1.所有的索引字段,如果没有设置not null,则需要加一个字节.2.定长字段,int占4个字节.date占3个字节.char(n)占n个字符.3.变长字段,varchar(n),则有n个字符+两个字节.4.不同的字符集,一个字符占用的字节数不同.latin1编码的,一个字符占用1个字节,gbk编码的,一个字符占用2个字节,utf8编码的,一个字符占用3个字节. utf8mb4是一个字符占4个字节5.使用explain语句查询到的key_len字段,可以适用于上面的计算规则,可以看到查询是否使…
1.js是用unicode算长度的,比如单字节的算1,中文也算1,但是正常我们想让两个单字节算1,如何计算这个长度 第一种解决方案,用正则,如下 /[\u0x00-\u0xff]/,天真的想着,这样就可以匹配所有unicode在这个之间的了,但是,这个正则不匹配标点符号,比如空格,逗号,不知道为什么,所以,只能去遍历charCodeAt了 代码如下: function getStringWidth(s){ var length = 0; for(var i=0;i<s.length;i++) {…
1.中英混合文字字符截取 //中文长度截取计算,可取中英混合,个数向上取整,精确度1个英文字符误差,一个英文算一个字符,一个汉字算一个字符. //sub("中文zlsd",1) -> "中" //sub("中文zlsd",3) -> "中文" function subCh (str,n){ var r=/[^\x00-\xff]/g; if(str.replace(r,"mm").length&…
在mysql 的explain的输出中,有个key_len的列,其数据是如何计算的呢? 在看到了淘宝的dba以前发布的博客后,我在mysql 5.6上操作一番,了解了一点. 环境准备 – 创建表. use test; drop table if exists test_keylen; create table test_keylen ( id int not null, name1 ), name2 ), create_time timestamp default current_timesta…
1:日期大Js代码 //人员失效职位日期是否小于组织失效日期 function perDateInvalidate(){ var flag = true; //组织失效日期 var orgDate = stringToTime(document.getElementById("orgDate").value); //人员失效日期 var personDate = stringToTime(document.getElementById("personDate").v…
波长=光速/频率=300/315=0.952米 1/4波长须要的天线长度=波长*1/4=0.952/4=0.238米 考虑导线传播高频信号的缩短率在0.98左右,因此天线长度=0.238*0.98=0.233. 所以一般的315M天线长度选择23cm,433M的天线长度在17cm左右.…
按指定的字符串截取 1.第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ${varible%%string*}从右向左截取最后一个string后的字符串 ${varible%string*}从右向左截取第一个string后的字符串 "*"只是一个通配符可以不要 例子: $ MYVAR=foodforthought.jpg $ echo ${MYVAR##*fo…
计算轮廓面积: double contourArea(InputArray contour, bool oriented=false ) InputArray contour:输入的点,一般是图像的轮廓点 bool oriented=false:表示某一个方向上轮廓的的面积值,顺时针或者逆时针,一般选择默认false 计算轮廓边长: double arcLength(InputArray curve, bool closed) InputArray curve:表示图像的轮廓 bool clos…
(strlen($string) + mb_strlen($string,'UTF8')) / 2;tw 这样计算的…
接触MySQL已经有一段时间了,了解如何优化它也迫在眉睫了,话说工欲善其事,必先利其器.最近我就打算了解下几个优化MySQL中经常用到的工具.今天就简单介绍下EXPLAIN. 环境准备 Explain 介绍 id select_type table type possible_keys key key_len ref rows Extra Explain extended 选项介绍 环境准备 1. MySQL版本 mysql> select version(); +---------------…
PHP计算字符串长度,包括计算英文.GBK.UTF-8多种字符集下PHP如何计算字符串长度. 英文字符串长度,strlen()是PHP自带的计算英文字符串的函数. GBK字符串长度 中文字符计算为2个字符,英文字符计算为1个,可以统计中文字符串长度的函数. function abslength($str) { $len = strlen($str); $i = 0; while ($i < $len) { if (preg_match("/^[" . chr(0xa1) . &q…
http://www.qttc.net/201207136.html // UTF8字符集实际长度计算 function getStrLeng(str){ var realLength = 0; var len = str.length; var charCode = -1; for(var i = 0; i < len; i++){ charCode = str.charCodeAt(i); if (charCode >= 0 && charCode <= 128) {…
字符数组的长度计算:必须以终止符’\0'作为边界,但对字符数组赋值时,有两种方式: 1:定义时用字符初始化 (1)char chs[7] = {'a', 'c', '0', 'z', '3','d'}; // 长度为6 上式等价于: (2)char chs[7] = {'a', 'c', '0', 'z', '3','d', '/0'}; // 长度为6 也等价于: (3)char chs[] = {'a', 'c', '0', 'z', '3','d', '/0' }; // 长度为6 但不等…
一.天线长度与波长 1.天线最佳长度计算 理论和实践证明,当天线的长度为无线电信号波长的1/4时,天线的发射和接收转换效率最高.因此,天线的长度将根据所发射和接收信号的频率即波长来决定.只要知道对应发射和接收的中心频率就可以用下面的公式算出对应的无线电信号的波长,再将算出的波长除以4就是对应的最佳天线长度.频率与波长的换算公式为:波长=30万公里/频率=300000000米/频率 (得到的单位为米))例:求业余无线电台的天线长度已知业余无线电台使用的信号频率为435MHz附近,其波长为:波长=…
基础准备工作 1.PostGIS 的安装 在安装PostGIS前首先必须安装PostgreSQL,然后再安装好的Stack Builder中选择安装PostGIS组件.具体安装步骤可参照 PostGIS的安装与初步使用_不睡觉的怪叔叔的博客-CSDN博客_postgis 2.加载Post GIS扩展 选中指定数据库,执行加载扩展语句 –添加支持 CREATE EXTENSION postgis; --添加postgis扩展 CREATE EXTENSION pgrouting; --添加pgro…
本文首先介绍了MySQL的查询计划中ken_len的含义:然后介绍了key_len的计算方法:最后通过一个伪造的例子,来说明如何通过key_len来查看联合索引有多少列被使用. key_len的含义 在MySQL中,可以通过explain查看SQL语句所走的路径,如下所示: mysql> create table t(a int primary key, b int not null, c int not null, index(b)); Query OK, 0 rows affected (0…
原文地址   1).id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询.   2).select_type列常见的有: A:simple:表示不需要union操作或者不包含子查询的简单select查询.有连接查询时,外层的查询为simple,且只有一个 B:primary:一个需要union操作或者含有子查询的select,位于最外层的单位查询的select_type即为primary.且只有一个 C:union:un…
  1).id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询.   2).select_type列常见的有: A:simple:表示不需要union操作或者不包含子查询的简单select查询.有连接查询时,外层的查询为simple,且只有一个 B:primary:一个需要union操作或者含有子查询的select,位于最外层的单位查询的select_type即为primary.且只有一个 C:union:union连接…
id:id是一组数字,表示查询中执行select子句或操作表的顺序,如果id相同,则执行顺序从上至下,如果是子查询,id的序号会递增,id越大则优先级越高,越先会被执行. id列为null的就表是这是一个结果集,不需要使用它来进行查询.   select_type: simple:表示不需要union操作或者不包含子查询的简单select查询.有连接查询时,外层的查询为simple,且只有一个. primary:一个需要union操作或者含有子查询的select,位于最外层的单位查询的selec…
http://www.innomysql.com/article/25241.html 1 key_len的含义 2 MySQL中key_len计算规则 3 通过key_len分析联合索引 本文首先介绍了MySQL的查询计划中ken_len的含义:然后介绍了key_len的计算方法:最后通过一个伪造的例子,来说明如何通过key_len来查看联合索引有多少列被使用. key_len的含义 在MySQL中,可以通过explain查看SQL语句所走的路径,如下所示: 1 2 3 4 5 6 7 8 9…