题解 | #操作符混合运用#

操作符混合运用

http://www.nowcoder.com/practice/d5ac4c878b63477fa5e5dfcb427d9102

select device_id,gender,age,university,gpa from user_profile where university='山东大学' and gpa>3.5 or university='复旦大学' and gpa>3.8 --虽然短,但是执行用时长 select device_id, gender, age, university, gpa from user_profile where device_id in (select device_id from user_profile where gpa>3.5 and university='山东大学') or device_id in (select device_id from user_profile where gpa>3.8 and university='复旦大学') 复杂的写法,子查询的方式 --运行时间短

全部评论
我才疏学浅,但是你这不是脱裤子放屁吗
69 回复 分享
发布于 2022-06-02 01:46
子查询的运行时间很长的
15 回复 分享
发布于 2021-11-18 15:34
我记得MySQL性能优化里面就说了尽量不要用子查询
8 回复 分享
发布于 2022-10-13 23:25 广东
='山东大学' and gpa>3.5 应该用括号括起来吧
4 回复 分享
发布于 2022-10-13 15:04 上海
时间是一样的,数据量大的话可能会看出效果
3 回复 分享
发布于 2022-07-20 10:34
也算熟悉了一下子查询的用法吧
3 回复 分享
发布于 2022-06-14 21:34
他是运行过一次了,哈哈,算什么效率高。第一次一样慢
2 回复 分享
发布于 2023-01-31 17:45 江苏
执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程。
2 回复 分享
发布于 2022-10-22 16:40 福建
前者53ms,后者44ms,确实后者快
2 回复 分享
发布于 2022-07-04 13:43
子查询运行时间更长吧
2 回复 分享
发布于 2022-04-13 15:11
不一定吧,我测试了一下只有一次是短的
2 回复 分享
发布于 2022-04-11 09:59
本来查一次就完事儿了,第二种方式还额外多查了两次
1 回复 分享
发布于 2024-06-30 03:58 广东
select device_id, gender, age, university, gpa from user_profile where gpa>3.5 and university='山东大学' union all select device_id, gender, age, university, gpa from user_profile where gpa>3.8 and university='复旦大学'
1 回复 分享
发布于 2023-01-19 14:36 上海
你这么写不如直接两个union all呢
1 回复 分享
发布于 2023-01-19 14:33 上海
其实,用union行不行的
1 回复 分享
发布于 2022-08-27 23:18 广东
子查询时间更长吧
1 回复 分享
发布于 2022-07-23 10:38
尝试使用union,执行不通过,可能是查询出的数据顺序有差别。但是在业务中这样操作应该是可行的
点赞 回复 分享
发布于 2024-12-25 10:49 四川
子查询怎么可能比这个效率高
点赞 回复 分享
发布于 2024-07-31 21:37 江苏
两个子查询,每个子查询会单独执行并返回结果,然后主查询再根据这些结果进行过滤,数据量大的话不可能快的,反而占更多计算和内存
点赞 回复 分享
发布于 2024-07-14 01:13 马来西亚
其实是第二个慢,是缓存的问题,你试试先执行第二个,在执行第一个,看看哪个快?
点赞 回复 分享
发布于 2023-10-11 10:44 广东

相关推荐

合不合适,我自己说了才算
码农索隆:hr:“真执着啊,来我公司当法人吧”
点赞 评论 收藏
分享
评论
432
19
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务