
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分析下。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)