日期:2014-05-16  浏览次数:20727 次

以下哪一个SQL执行效率更快点 数据库是MYSQL
信息表info 栏目表classt

现在查询info表,条件是查询的info那个表的信息所属的栏目模型ID(字段modid)不等于10,用classid关联两个表
我有两种方法
1,select * from info where (select modid from classt where classid=info.classid)<>10
2,select info.* from info,classt where classt.modid<>10

表面上看第二个简单些,因为需要结合程序,我用第一种方便
现不考虑方便问题,请问哪个SQL效率更高

------解决方案--------------------
具体看一下explain select * from info where (select modid from classt where classid=info.classid)<>10

explain select info.* from info,classt where classt.moid<>10
执行计划不就知道那个效率更高一些。
------解决方案--------------------
select info.* from info,classt where info.classid=classt .classid and classt.modid<>10

应该是这条语句的效率会更高一些。
具体可以explain select info.* from info,classt where info.classid=classt .classid and classt.modid<>10
select * from info where (select modid from classt where classid=info.classid)<>10
执行计划不就知道那个效率更高一些。