MySQL的查询优化技术-07.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL的查询优化技术-07

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * The Query Optimization Technique Of MySQL(5.6.X) /li_hx/ 1.4 How to do Outer Join Elimination for MySQL ? 外连接消除示例2:---深入理解WHERE条件对外连接优化的影响 对于语句五,被查询优化器处理后的语句为: /* select#1 */ select `tt2`.`t_1`.`t_1_id` AS `t_1_id`, `tt2`.`t_1`.`t_1_col_1` AS `t_1_col_1`,`tt2`. `t_1`.`t_1_col_2` AS `t_1_col_2`,`tt2`.`t_2`.`t_2_id` AS `t_2_id`, `tt2`.`t_2`.`t_2_col_1` AS `t_2_col_1`,`tt2`.`t_2`.`t_2_col_2` AS `t_2_col_2` from `tt2`.`t_1` join `tt2`.`t_2` where ((`tt2`.`t_2`.`t_2_id` = `tt2`.`t_1`.`t_1_id`) and (`tt2`.`t_1`.`t_1_id` 0)) The Query Optimization Technique Of MySQL(5.6.X) /li_hx/ 1 Outer Join Elimination 外连接消除总结: 1 注意外连接与内连接的语义差别 2 外连接优化的条件:空值拒绝 3 外连接优化的本质:语义上是外连接,但WHER条件使得外连接可以蜕化为内连接 The Query Optimization Technique Of MySQL(5.6.X) /li_hx/ 2 Join Elimination 连接消除: 去掉不必要的连接对象,则减少了连接操作 连接消除的条件: 无固定模式,具体问题具体处理 The Query Optimization Technique Of MySQL(5.6.X) /li_hx/ 2 Join Elimination 连接消除情况一: 唯一键/主键作为连接条件,三表内连接可以去掉中间表 (中间表的列只作为连接条件) CREATE TABLE A (a1 INT UNIQUE, a2 VARCHAR(9), a3 INT); CREATE TABLE B (b1 INT UNIQUE, b2 VARCHAR(9), c2 INT); CREATE TABLE C (c1 INT UNIQUE, c2 VARCHAR(9), c3 INT); B的列在WHERE条件子句中只作为等值连接条件存在,则查询可以去掉对B的连接操作: SELECT A.*, C.* FROM A JOIN B ON (a1=b1) JOIN CON (b1=c1); 相当于: SELECT A.*, C.* FROM A JOIN C ON (a1= c1); The Query Optimization Technique Of MySQL(5.6.X) /li_hx/ 2 Join Elimination 连接消除情况二: 一些特殊形式,可以消除连接操作(可消除的表除了作为连接对象外,不出现在任何子句中)。 示例: SELECT MAX(a1) FROM A, B;/* 在这样格式中的MIN、MAX函数操作可以消除连接,去掉B表不影响结果;其他聚集函数不可以 */ SELECT DISTINCT a3 FROM A, B; /* 对连接结果中的a3列执行去重操作*/ SELECT a1 FROM A, B GROUP BY a1;/* 对连接结果中的a1列执行分组操作 */ The Query Optimization Technique Of MySQL(5.6.X) /li_hx/ 2 Join Elimination 连接消除情况三: 主外键关系的表进行的连接,可消除主键表,这不会影响对外键表的查询。 The Query Optimization Technique Of MySQL(5.6.X) /li_hx/ 2 Join Elimination 连接消除示例:---创建对象 创建表,命令如下: CREATE TABLE B (b1 INT, b2 VARCHAR(2), PRIMARY KEY(b1)); CREATE TABL

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档