这是第一条sql语句,执行时间 5s左右
select
...
from
`user` u,
(select u.id_card from user u left join purchase pe on u.user_id = p.user_id
where pe.purchase_status_id = 4 group by u.id_card having count(pe.purchase_id) = 1) a,
purchase pe, product pt
where
u.id_card = a.id_card and u.user_id = p.user_id and p.product_id = pt.product_id and
p.purchase_status_id = 4 and pt.fake_repayment_time < date_sub(current_date, interval 1 month)
group by u.id_card
order by 5;
第二条sql语句,执行时间10s左右
select
...
from
(select u.user_id, u.authentic_name, u.phone_number, u.id_card,
pe.purchase_begin_time, pt.`name`, pt.fake_repayment_time
from user u, purchase pe, product pt
where u.user_id = pe.user_id and pe.product_id = pt.product_id and pe.purchase_status_id = 4
group by u.id_card having count(pe.purchase_id) = 1) t
where t.fake_repayment_time < date_sub(current_date, interval 1 month)
order by 5;
我的直观感觉应该是第一条sql执行更慢,但实际是第二条执行慢,请问原因是什么。
代码不方便观看的话,用美化器美化下把。
mysql 执行 效率问题
答案:2 悬赏:0
解决时间 2021-03-21 23:28
- 提问者网友:涼初透
- 2021-03-21 05:14
最佳答案
- 二级知识专家网友:湫止没有不同
- 2021-03-21 05:29
如果是相同条件下,当然是第一条了,第二天又相当于创建了一个临时表!
答题不易,互相帮助,手机提问的朋友在客户端右上角评价点满意即可.
如认可我的回答,请点击采纳为满意回答按钮.
答题不易,互相帮助,手机提问的朋友在客户端右上角评价点满意即可.
如认可我的回答,请点击采纳为满意回答按钮.
全部回答
- 1楼网友:不傲怎称霸
- 2021-03-21 06:54
不是innodb执行插入操作比myisam高效,而是说innodb支持回滚等事务处理,当有多并发操作时可以保证事务安全,插入速度还是myisam比较快的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯