`
1000copy
  • 浏览: 72530 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

改善sql字符串的可读性(4) - 多Join拼接的性能测试

阅读更多

 

测试,当on的条件为false的时候,join是否会被优化?

 

-- 插入测试表

CREATE TABLE person        (id INT NOT NULL ,NAME VARCHAR(20));

CREATE TABLE bill        (id INT NOT NULL ,NAME VARCHAR(20),personId INT );

 

-- 插入测试数据

DELETE FROM person;

INSERT INTO person  VALUES(1,"martin fowler");

INSERT INTO person  VALUES(2,"rebert martin");

 

-- 插入测试数据

DELETE FROM bill;

INSERT INTO bill  VALUES(1,"bill1",1);

INSERT INTO bill VALUES(2,"bill2",1);

INSERT INTO bill VALUES(2,"bill2",3);

SELECT * FROM bill;

 

// mysql 是不能优化掉的,执行计划内有person

EXPLAIN SELECT bill.* FROM bill LEFT JOIN person ON FALSE AND bill.personId = person.id

 

同样的测试,sqlserver可以优化掉。

即使select内有person的字段也可以。相见 执行计划

SELECT bill.*,person.* FROM bill LEFT JOIN person ON 1=0 aND bill.personId = person.id

 

0
0
分享到:
评论
2 楼 1000copy 2010-06-23  
mercyblitz 写道
MySQL的SQL解析不强吗,呵呵

也许是因为mysql没有想到有人会这样用吧:)
1 楼 mercyblitz 2010-06-23  
MySQL的SQL解析不强吗,呵呵

相关推荐

Global site tag (gtag.js) - Google Analytics