关于explain之后的些许疑问,请大家看看,谢谢! 请问1为何type会是index? 将2为何extra会有using index?3keyleng的777是怎么计算出来的?感谢大家!!祝各位前辈周末愉快! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 type:index 表示查询时扫描索引树,而不是扫描表extra:using index 表示字段信息直接从索引树中取得至于 key_len:777 (索引长度)就和 MySQL 的内部实现相关了 type列中出现了index,扫描全表的顺序,仅仅是按索引顺序去扫描的。extra列中出现using index:出现这个说明mysql使用了覆盖索引,避免访问了表的数据行。也可以理解为命中索引key_len 的值,根据这个值可以判断索引的长度,计算方法可以参考:http://www.cnblogs.com/zhoujinyi/p/3784450.html price decimal(20,3)bn varchar(255)decimal 将每9个数位压缩成4个字节,所以 ceiling(20/9)*4 = 12varchar 按字符集扩展实际空间,对于 utf-8 有 255*3 = 765两者相加为 777 根据官方文档可以知道,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 |-----------------------------price decimal(20,3) =>小数点左边17位,小数点右边3位 => 小数点左边分组为9+8 ,需要4个字节+4个字节存储,小数点右边一个分组3,需要2个字节存储 => 总共需要10个字节bn varchar(255) utf8 255*3 = 765因为varchar是变长字段,额外增加2字节,所以就是10+765+2 = 777 php如何使用header直接下载图片? 求一款正则表达式 调试错误(PHP+MySQL)在线等 php同步调用AJAX时 无论AJAX页代码是否出错 status皆为200 我想隐藏图片路径,有没有好的解决方案呢? PHP如何在特定的时间执行代码 100分急求一个Notice的警告信息的问题,谢谢!!! 超级简单问题 与WORD,EXCEL表格结合问题 有无关闭浏览器后使session失效的函数? 为什么插入数据没反应啊 PHP执行系统命令(windows/linux)调用matlab做矩阵运算
extra:using index 表示字段信息直接从索引树中取得
至于 key_len:777 (索引长度)就和 MySQL 的内部实现相关了
extra列中出现using index:出现这个说明mysql使用了覆盖索引,避免访问了表的数据行。也可以理解为命中索引
key_len 的值,根据这个值可以判断索引的长度,计算方法可以参考:http://www.cnblogs.com/zhoujinyi/p/3784450.html
bn varchar(255)decimal 将每9个数位压缩成4个字节,所以 ceiling(20/9)*4 = 12
varchar 按字符集扩展实际空间,对于 utf-8 有 255*3 = 765
两者相加为 777
-----------------------------
|0 |0 |
|1-2 |1 |
|3-4 |2 |
|5-6 |3 |
|7-9 |4 |
-----------------------------price decimal(20,3) =>小数点左边17位,小数点右边3位 => 小数点左边分组为9+8 ,需要4个字节+4个字节存储,小数点右边一个分组3,需要2个字节存储 => 总共需要10个字节bn varchar(255) utf8
255*3 = 765因为varchar是变长字段,额外增加2字节,
所以就是10+765+2 = 777