MySQL中exists和join的区别
来源:互联网 发布:网络评书 编辑:程序博客网 时间:2024/06/03 19:44
今天在公司项目中发现call一条API的数据,居然要4.9S,通过查看其SQL语句以及网上查找相关资料,发现是:EXISTS和join的区别:
SELECT T.*
FROM TOPIC T
WHERE 1=1
AND T.REL_TYPE = 'G'
AND EXISTS(
SELECT 1 FROM USER_GROUP_REL R WHERE
R.GROUP_ID = T.REL_ID
AND R.USER_ID = 'EvyUzm'
)
AND (T.SIGN != 'hide' OR T.SIGN IS NULL)
AND
T.STATE != 'DEL'
ORDER BY
T.SIGN DESC,T.SIGN_TIME asc,
T.CREATE_TIME
desc
EXISTS在命中率高的情况下查询速度较快,像这种需要判断的表的数据量较大,而条件表的数据量较少时不宜使用。INNER JOIN相对较稳定一些,不会随命中率的变化而影响性能
SELECT T.*
FROM TOPIC Tinner join USER_GROUP_REL R on T.REL_ID = R.GROUP_ID
AND R.USER_ID = 'EvyUzm'
AND T.REL_TYPE ='G'
AND (T.SIGN != 'hide' OR T.SIGN IS NULL)
AND T.STATE != 'DEL'
ORDER BY
T.SIGN DESC,T.SIGN_TIME asc,
T.CREATE_TIME
desc;
0 0
- MySQL中exists和join的区别
- Mysql中exists和in的区别
- MySQL中exists和in的区别
- mysql中exists和in的区别
- mysql的exists与inner join 和 not exists与 left join 性能差别惊人
- MySQL查询条件中exists和in的区别
- 【mysql】 SQL中inner join、outer join和cross join的区别
- mysql中left join、right join、inner join的区别
- MYSQL中 inner join left join right join的区别
- mysql中left join,right join,inner join的区别
- mysql join中,on和where的区别
- SQL中exists和in的区别
- SQL中exists和in的区别
- SQL中exists和in的区别
- oracle中in和exists的区别
- SQL中exists和in的区别
- oracle中in和exists的区别
- Oracle中in和exists的区别
- partition X does not end on cylinder boundary
- C++中map的常用方法
- NDXXRpt查询数据初始化过程
- 0C-014.OC中的点语法
- 一步一步学习TypeScript(04.严格的对象赋值检查)
- MySQL中exists和join的区别
- 跟我一起玩Win32开发(3):窗口的重绘
- appledoc工具的使用
- CentOS6.7 vsftpd配置
- 让TextView拥有ScrollView的滑动功能
- online_judge_1034
- HDOJ 题目4296 Buildings(贪心)
- hadoop笔试收集
- [javase学习笔记]-1.1 基本常识