加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

步步深入MySQL:架构-查询执行流程-SQL解析顺序

发布时间:2018-09-23 14:25:21 所属栏目:编程 来源:AnnsShadoW
导读:【新品产上线啦】51CTO播客,随时随地,碎片化学习 一、前言 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构---查询执行流程---语句执行顺序来探讨一下其中的知识。

计算两个相关联表的笛卡尔积(CROSS JOIN) ,生成虚拟表VT1-J1。

  1. mysql> select * from table1,table2; 
  2. +-----+------+-----+------+ 
  3. | uid | name | oid | uid  | 
  4. +-----+------+-----+------+ 
  5. | aaa | mike |   1 | aaa  | 
  6. | bbb | jack |   1 | aaa  | 
  7. | ccc | mike |   1 | aaa  | 
  8. | ddd | mike |   1 | aaa  | 
  9. | aaa | mike |   2 | aaa  | 
  10. | bbb | jack |   2 | aaa  | 
  11. | ccc | mike |   2 | aaa  | 
  12. | ddd | mike |   2 | aaa  | 
  13. | aaa | mike |   3 | bbb  | 
  14. | bbb | jack |   3 | bbb  | 
  15. | ccc | mike |   3 | bbb  | 
  16. | ddd | mike |   3 | bbb  | 
  17. | aaa | mike |   4 | bbb  | 
  18. | bbb | jack |   4 | bbb  | 
  19. | ccc | mike |   4 | bbb  | 
  20. | ddd | mike |   4 | bbb  | 
  21. | aaa | mike |   5 | bbb  | 
  22. | bbb | jack |   5 | bbb  | 
  23. | ccc | mike |   5 | bbb  | 
  24. | ddd | mike |   5 | bbb  | 
  25. | aaa | mike |   6 | ccc  | 
  26. | bbb | jack |   6 | ccc  | 
  27. | ccc | mike |   6 | ccc  | 
  28. | ddd | mike |   6 | ccc  | 
  29. | aaa | mike |   7 | NULL | 
  30. | bbb | jack |   7 | NULL | 
  31. | ccc | mike |   7 | NULL | 
  32. | ddd | mike |   7 | NULL | 
  33. +-----+------+-----+------+ 
  34. 28 rows in set (0.00 sec)  

2.2、(1-J2)ON过滤

基于虚拟表VT1-J1这一个虚拟表进行过滤,过滤出所有满足ON 谓词条件的列,生成虚拟表VT1-J2。

注意:这里因为语法限制,使用了'WHERE'代替,从中读者也可以感受到两者之间微妙的关系;

  1. mysql> SELECT 
  2.     -> * 
  3.     -> FROM 
  4.     -> table1, 
  5.     -> table2 
  6.     -> WHERE 
  7.     -> table1.uid = table2.uid 
  8.     -> ; 
  9. +-----+------+-----+------+ 
  10. | uid | name | oid | uid  | 
  11. +-----+------+-----+------+ 
  12. | aaa | mike |   1 | aaa  | 
  13. | aaa | mike |   2 | aaa  | 
  14. | bbb | jack |   3 | bbb  | 
  15. | bbb | jack |   4 | bbb  | 
  16. | bbb | jack |   5 | bbb  | 
  17. | ccc | mike |   6 | ccc  | 
  18. +-----+------+-----+------+ 
  19. 6 rows in set (0.00 sec)  

2.3、(1-J3)添加外部列

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读