了解MySQL执行计划结果


本文主要给大家介绍了解MySQL执行计划结果,其所涉及的东西,从理论知识来获悉,有很多书籍、文献可供大家参考,从现实意义角度出发,开发云累计多年的实践经验可分享给大家。table
输出结果集的表名partitions
存在分区时,使用到哪些分区possible_keys
列指出MySQL能使用哪个索引在该表中找到行key
显示MySQL实际决定使用的键(索引)。如果没有选择索引,键是NULLkey_len
显示MySQL决定使用的键长度。如果键是NULL,则长度为NULL。使用的索引的长度。在不损失精确性的情况下,长度越短越好ref
显示使用哪个列或常数与key一起从表中选择行。rows
显示MySQL认为它执行查询时必须检查的行数。filtered
存储引擎返回的数据在server层过滤后,剩下多少满开发云主机域名足查询的记录数量的比例(百分比)简单来说就是数据库根据索引找到了指定的记录所在行后,还需要根据rowid再次到数据块里取数据的操作。比如这样的执行计划,先索引扫描,再通过rowid去取索引中未能提供的数据,即为回表。“回表”一般就是指执行计划里显示的“TABLE ACCESS BY INDEX ROWID”。再例如,虽然只查询索引里的列,但是需要回表过滤掉其他行。怎么避免回表?
将需要的字段放在索引中去。查询的时候就能避免回表。但是不要刻意去避免回表,那样代价太了。也不是将所有的字段都放在所有中。回表和MySQL的索引实现有关系,有兴趣的朋友可以进一步了解B+树相关原理,参照下面这篇文章“从B树、B+树、B*树谈到R 树”。不同于oracle的rownum,mysql不太直接提供这样的字段,但是可以用变量的方法添加伪自增序列,语法格式为
SELECT @rownum:=@rownum+1 AS rownum, table_name.* FROM (SELECT @rownum:=0) r, table_name ;看了以上了解MySQL执行计划结果介绍,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,大家可以继续关注开发云行业资讯板块,会定期给大家更新行业新闻和知识,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。

相关推荐: Linux运维MySQL必会面试题100道

1.开启MySQL服务2.检测端口是否运行3.为MySQL设置密码或者修改密码。4.登陆MySQL数据库。5.查看当前数据库的字符集6.查看当前数据库版本7.查看当前登录的用户。8.创建GBK字符集的数据库oldboy,并查看已建库完整语句9.创建用户oldb…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/07 16:05
下一篇 06/07 16:05

相关推荐