mysql explain中key_len的作用】的更多相关文章

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';+----+-------------+--------+------+---------------+------+---------+------…
key_len表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在组合索引的时候,判断该索引有多少部分被使用到非常重要. 在计算key_len时,下面是一些需要考虑的点: 索引字段的附加信息: 可以分为变长和定长数据类型讨论: 当索引字段为定长数据类型时,如char,int,datetime,需要有是否为空的标记,这个标记占用1个字节(对于not null来说不需要这1个字节): 当索引字段为变长数据类型时,如varchar,除了是否为空的标记外,还需要有长度信息,需要占用2个字节:…
在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…
今天丁原问我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,除了是否为空的标记外…
mysql explain中的 “Select tables optimized away” http://blog.chinaunix.net/uid-10449864-id-2956845.html2009年 今天在做SQL语句优化的时候,在explain的时候,有这样一个提示: mysql> explain SELECT max( up_start ) AS up_start FROM test WHERE up_start > '2008-01-19 00:00:00' and up_…
以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告诉MySQL解释器,该段命令是否已经结束了,MySQL数据库是否可以执行了.默认情况下,delimiter是分号;.在命令行客户端中,如果有一行命令以分号结束,那么回车后,MySQL将会执行该命令.如输入下面的语句 MySQL> select * from test_table; 然后回车,那么My…
这周五下班前,发现了一个奇怪问题,大概是这个背景 一张表,结构为 Create Table: CREATE TABLE `out_table` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, PRIMARY KEY (`id`) ) ENGINE DEFAULT CHARSET=latin1 总共有37K rows的数据,数据大概是这样 +----+------+ | id | name | +----+------+ | a | | b…
(转载)http://database.51cto.com/art/201005/201651.htm 在MySQL数据类型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它们都有各自的作用,下面我们就主要来介绍一下MySQL数据类型中的DECIMAL类型的作用和用法. 一般赋予浮点列的值被四舍五入到这个列所指定的十进制数.如果在一个FLOAT(8, 1)的列中存储1. 2 3 4 5 6,则结果为1. 2.如果将相同的值存入FLOAT(8, 4) 的列中,则结果为1. 2…
参考:<高性能mysql>附录D EXPLAIN MySql将Select查询分为简单和复杂类型,复杂类型分为3大类:简单子查询,所谓的派生表(在派生表的子查询),以及UNION查询. 列与其介绍 id 该列包含一个编号,标识SELECT所属的行. select_type 该列显示了对应行是简单还是复杂的select(如果是后者,那么是三种复杂类型中哪一种). simple:查询不包括子查询和UNION. primary:如果查询有任何复杂的子部分,则最外层标记为primary. subque…