作者seagal (会长绕跑了)
看板Web_Design
标题Re: [问题] MySQL的INNER JOIN?
时间Thu Jul 27 22:22:49 2006
就这一题题目来讲
query tree就应该能够最佳化了吧
理论上MySQL应该也要能够做到最佳化才对(我没实际验证过 只是就理论上来讲)
在建出query tree的时候
第二个步骤
就会把select(关联式代数的select 可以把它想像是SQL的WHERE)向下移动
第三个步骤 调整树结构
就会把最严格的要求放到最靠近terminal的地方
因此WHERE xxx=xxx就会最先被执行
所以你的INNER JOIN不管是否写在JOIN叙述 或是WHERE子句里
理论上都会被optimize成相同的query tree的
※ 引述《grassboy2 (活力花俏草儿Grassboy大렩》之铭言:
: 嗯…想要问一下关於他的用法…
: 就是啊…当我在执行
: SELECT `tableA`.`attr1` `tableB`.`attr1`
: FROM `tableA` INNER JOIN `tableB`
: ON `tableA`.`id` = `tableB`.`foreign_id`
: WHERE `tableA`.`id` = '123' 时
: MYSQL会对那些`tableA`.`id` <> '123'的资料也先作JOIN吗?
: 如果会的话@@~那…感觉在资料量一多的时候…
: 无法满足WHERE条件的资料一定会很多…不就作了一堆无谓的JOIN了吗@@~
: 那…INNER JOIN的效率感觉很差耶@@~
: 最近看到INNER JOIN满想问这问题的^^"
: 板上的高手可以指点一下吗><~谢谢罗~
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.169.200
※ 编辑: seagal 来自: 140.109.169.200 (07/27 22:27)