1.FROM
2.ON
3.JOIN
4.WHERE
5.GROUP BY
6.WITH CUBE or WITH ROLLUP
7.HAVING
8.SELECT
9.DISTINCT
10.ORDER BY
11.TOP
是这个顺序么,可是为什么explain的时候,row的行数是where之后的行数
explain显示的row是join前的row么
2.ON
3.JOIN
4.WHERE
5.GROUP BY
6.WITH CUBE or WITH ROLLUP
7.HAVING
8.SELECT
9.DISTINCT
10.ORDER BY
11.TOP
是这个顺序么,可是为什么explain的时候,row的行数是where之后的行数
explain显示的row是join前的row么
解决方案 »
- mysql中文排序问题
- 非计算机新手,工作需求,mysql 行列转换,求解决代码。。。
- 如何 把视频文件存入 数据库那
- mysql中一个查询语句的问题
- 怎么使用在mysql中使用变量,使用触发器!
- Error:Access denied for user '@localhost' to database 'future'!
- 新来的最好去看一下精华区的东西,各位也可以推荐自己觉得是精华的帖子,稍后加精 。
- mysql ibdata1 文件太大导致数据库出现问题
- 创建触发器执行时说列名无效,急!~
- 一个db3数据库被加密了每次使用必须用其软件先解密才能查看数据,有没有办法绕开加解密
- insert 的时候奇怪的问题!
- mysql怎么取得当月所有日期、星期
EXPLAIN是每个步骤后,得到的行数。
(uf.user_id = 1 AND uf.friend_id = u.id);| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
| 1 | SIMPLE | uf | ref | PRIMARY,user_friend_friend_ref | PRIMARY | 4 | const | 9 | Using where |
| 1 | SIMPLE | u | eq_ref | PRIMARY | PRIMARY | 4 | uf.friend_id | 1 | |
比如说这句,执行顺序是
1.from u,uf
2.on 哦,这里uf.user_id = 1放到on里了,所以出来的rows=9
3.那explain出来 table u 的rows=1如何理解
4.explain是显示join前的rows么
然后 user_id = 1 结果是 9 行
再 查找 u 找符合条件 uf.friend_id = u.id 的记录。
也就是说explain的是join之前的
1.from
2.on
看某人的博客对from的解释,
他的解释是否正确
这样就是先join再判断on了