请牛人看看这条MySQL语句该如何优化?

请牛人看看这条MySQL语句该如何优化?,第1张

1.可以在要查询的字段上建索引

2.not in (select bid from rewrite) not in的效率不如exits

3.TO_DAYS( NOW( ) ) - TO_DAYS(paid_time)>=20这个判断条件在程序中处理,

不用使用数据库函数,这样比较慢

你需列出索引,表结构!

你的数据量这么大,估计是全表扫描了吧,

1.首先did应该建为索引;

2.select bid from rewrite 这个也是全表扫描,用in或not in 那么bid这个字段不管是不是索引都会进行全表扫描了,可以考虑用exists 代替in。where bid not exsits (select 1 from rewrite where my_list.bid =rewrite.bid ) 另外在bid上加索引,2个表都加!

3.第三个条件,算术表达式应该还是可以优化的,暂先不考虑吧。综合为:

1、添加表my_list列did,bid索引;

2、添加rewrite列bid为索引;

3、将bid not in (select bid from rewrite) 改为bid not exsits (select 1 from rewrite where my_list.bid =rewrite.bid );

期待你的测试结果。可以先用exlain分析下。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7304565.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存