mysql中explain执行结果中的rows是什么意思?
1.在为表创建索引的过程中,发现当在一个现有的索引最右添加一列后,按照筛选条件看,能缩小查询的范围。然后从explain执行后结果发现,其实扫描的rows有时候反而比加上新的一列后会增多。
而某些情况下,rows的大小并不是和最后的查询时间成反比。
2.比如我的表结构如下:
CREATE TABLE `test` (`flag` tinyint(4) NOT NULL DEFAULT '0',`type` smallint(6) NOT NULL DEFAULT '0',`poid` int(11) NOT NULL DEFAULT '0',`new_nums` int(11) NOT NULL DEFAULT '0',`addup_nums` int(11) NOT NULL DEFAULT '0',`r_time` int(11) NOT NULL DEFAULT '0',`event_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,`dtype` tinyint(6) NOT NULL DEFAULT '1' COMMENT '1.day 2.week 3.month',`dtime` char(10) NOT NULL DEFAULT '',KEY `one` (`dtime`,`r_time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
当我试图在索引one的最后添加一列poid后,我发现,explain执行后的rows反而增多了。
3.
所以,rows究竟是怎么计算出来的呢?
- 2016年03月03日提问
- 评论
- 邀请回答
- 编辑
1个回答
这个rows在官网的文档中有解释:
MySQL :: MySQL 5.7 Reference Manual :: 8.8.2 EXPLAIN Output Format
The rows column indicates the number of rows MySQL believes it must examine to execute the query.
这个rows就是mysql认为必须要逐行去检查和判断的记录的条数。
举个例子来说,假如有一个语句 select * from t where column_a = 1 and column_b = 2;
全表假设有100条记录,column_a字段有索引(非联合索引),column_b没有索引。
column_a = 1 的记录有20条, column_a = 1 and column_b = 2 的记录有5条。
那么最终查询结果应该显示5条记录。 explain结果中的rows应该是20. 因为这20条记录mysql引擎必须逐行检查是否满足where条件。
mysql中explain执行结果中的rows是什么意思?相关推荐
- MySQL中explain执行计划中额外信息字段(Extra)详解
SQL执行计划是经过优化器决策,产生的SQL在数据库内部执行的访问路径计划: 由如下语法得到: explain select col1,col2 from t1..; desc select col1 ...
- mysql中explain执行结果各个字段的意思
1.Explain执行计划--SQL优化神器 用法: EXPLAIN SELECT * FROM pms_category WHERE parent_cid=0 运行结果: 通过在SQL语句前面加上e ...
- mysql sql先后执行_MySQL中SQL语句执行顺序
(7) SELECT (8) DISTINCT (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) HAVING (9) ORDER BY (10) ...
- MySQL 优化 —— EXPLAIN 执行计划详解
引言 本博客大部分内容翻译自MySQL 官网 Understanding the Query Execution Plan 专题.另外有一些补充,则来自于网课以及<高性能MySQL(第三版)&g ...
- mysql using filesort_Mysql执行计划中的Using filesort
Using filsort文档中的解释: Mysql需要额外的一次传递,以找出如何按排序顺序检索行,通过根据联接类型浏览所有行并为所有匹配where子句的行保存排序关键字和行的指针来完成排序,然后关键 ...
- mysql using temporary_执行计划中Using filesort,Using temporary相关语句的优化解决_MySQL
bitsCN.com 昨天听开发人员提到,相关的彩票网页当中一个页面刷新的很慢,特别是在提取数据的时候, 今天早上一到,便去找开发人员要去相关的也没进行浏览,窥探哪些数据出现了问题,开发人员 使用PH ...
- 执行计划oracle中cost,执行计划中cost计算方法
概念: blevel:二元高度=索引高度-1 clustering_factor:集群因子,扫描index scan得出的要扫描的表中block数,clustering_factor<=tabl ...
- composer php中如何执行,php中composer如何实现类的自动加载(示例讲解)
本篇文章给大家带来的内容是关于php中composer如何实现类的自动加载(示例讲解),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我们在开发项目中会经常用到第三方的类库插件,但是 ...
- MySQL中Explain用法详解
Explain简介 我们在写后端程序的时候,通常会写sql来查询数据,如果是单表查询的时候,那直接select就完事了,但是如果是连表查询数据量也不小的话,就造成了查询速度会比较慢,那么我们该怎么知道 ...
- Mysql explain 执行计划之type详解
EXPLAIN执行计划中type字段分为以下几种: ALL INDEX RANGE REF EQ_REF CONST,S ...
最新文章
- 三年 Git 使用心得 常见问题整理
- 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 6.)(python/c/c++版)(笔记)
- 一个简单易用的代码生成工具
- WinForm:进度条的实现(异步)
- Windows下Redmine插件安装
- wrodpress登录mysql_登陆wordpress后台MySQL错误
- 特斯拉电动皮卡不太香:预订表现不及3年前的Model 3
- bottomnavigationview放大两边没有_有没有什么HAPPYEND的动漫?
- pytorchgpu测试_pytorch学习(十)—训练并测试CNN网络
- 计算机输入输出接口是交接界面,计算机组成原理试题1
- win7如何显示文件扩展名?
- rpm -ivh安装mysql_RPM 命令详细介绍
- 携程网络防火墙自动化运维之道
- m-TRP transmission for URLLC(draft)
- Linux启动时间优化-内核和用户空间启动优化实践
- 打破行业困境,大麦如何引领NB-IoT技术的创新应用
- 你是不是傻,怎么不选最好的?
- 桌面图标文件夹图标隐藏恢复
- POI实现Word文件转PDF
- 基于java的网上水果销售管理系统
热门文章
- linux cat 压缩文件,Linux cat和zcat命令可能比你意识到的更有用
- Debian(Linux) 安装Windows通用字体(可解决TimesNewRoman等字体的报错)
- 39个让你受益的HTML5教程
- Compilation failed to complete
- CSS中的传统布局、多列布局、弹性伸缩布局及Emmet工具
- 社会心理学(第8版)
- smartbi服务器缓存文件,Smartbi Config页面介绍 - Smartbi V9 帮助文档
- @property详细解读
- js实现简单的点名器随机色
- python opencv生成背景透明图标