免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3758 | 回复: 11
打印 上一主题 下一主题

MYSQL的explain分析结果不明?帮助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-02 10:49 |只看该作者 |倒序浏览
一个SQL查出15行
  1. mysql> SELECT COUNT(uid) FROM jiuder_user WHERE 1 AND isworker=1;
  2. +------------+
  3. | COUNT(uid) |
  4. +------------+
  5. |         15 |
  6. +------------+
  7. 1 row in set (0.00 sec)
复制代码
使用explain分析上面的sql,结果rows列是22,为什么会多出几行呢?

mysql> explain SELECT uid FROM jiuder_user WHERE 1 AND isworker=1;
+----+-------------+-------------+------+---------------+----------+---------+-------+------+-------+
| id | select_type | table       | type | possible_keys | key      | key_len | ref   | rows | Extra |
+----+-------------+-------------+------+---------------+----------+---------+-------+------+-------+
|  1 | SIMPLE      | jiuder_user | ref  | isworker      | isworker | 1       | const |   22 |       |
+----+-------------+-------------+------+---------------+----------+---------+-------+------+-------+
1 row in set (0.00 sec)

论坛徽章:
0
2 [报告]
发表于 2011-04-02 11:33 |只看该作者
explain 中的执行计划是基于统计信息的一种选择,而统计信息又不是时时的,所有会有出入.

论坛徽章:
0
3 [报告]
发表于 2011-04-02 12:00 |只看该作者
explain应该是估值,并没有真正执行语句

论坛徽章:
0
4 [报告]
发表于 2011-04-03 16:57 |只看该作者
学习

论坛徽章:
0
5 [报告]
发表于 2011-04-06 12:22 |只看该作者
explain中的rows是指mysql需要访问22行才能给你返回10行的数据

论坛徽章:
0
6 [报告]
发表于 2011-04-08 23:02 |只看该作者
回复 5# 不是流氓


    我就不懂的是。为什么要多扫描那么几行。多的几行是怎么来的呢?

论坛徽章:
0
7 [报告]
发表于 2011-04-09 16:41 |只看该作者
估值,仅仅是估值,select 的结果才是真的。。  记住这个就好, 可以看看相关官方文档。。

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
8 [报告]
发表于 2011-04-09 17:32 |只看该作者
explain 中的执行计划是基于统计信息的一种选择,而统计信息又不是时时的,所有会有出入.
strong_sjhi 发表于 2011-04-02 11:33



    嗯

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
9 [报告]
发表于 2011-04-10 16:51 |只看该作者
analyze table 一下,主动更新statistics 会使得统计信息更准一点~

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
10 [报告]
发表于 2011-04-13 19:46 |只看该作者
explain中的rows是指mysql需要访问22行才能给你返回10行的数据
不是流氓 发表于 2011-04-06 12:22



    这才是原因,别人云亦云,因为据官方解释:rows列显示MySQL认为它执行查询时必须检查的行数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP