数据库中存在300W条数据运行以下SQL语句Select top 10000 aid,[a1].addtime,[a1].hits From [eit_InfoGroup][a1] left join [eit_Custom_Article][a2] on [a1].[id]=[a2].[aid] inner join [eit_Class][a3] on [a1].[classid]=[a3].id Where ClassID in(30) order by [a1].addtime desc
Select top 10000 aid,[a1].addtime From [eit_InfoGroup][a1] left join [eit_Custom_Article][a2] on [a1].[id]=[a2].[aid] inner join [eit_Class][a3] on [a1].[classid]=[a3].id Where ClassID in(30) order by [a1].addtime desc第一条SQL语句运行需要 5-8秒时间 只是多了个 [a1].hits第二条语句运行只需要0秒就显示出来了大家能帮忙说说为什么吗? 好郁闷
Select top 10000 aid,[a1].addtime From [eit_InfoGroup][a1] left join [eit_Custom_Article][a2] on [a1].[id]=[a2].[aid] inner join [eit_Class][a3] on [a1].[classid]=[a3].id Where ClassID in(30) order by [a1].addtime desc第一条SQL语句运行需要 5-8秒时间 只是多了个 [a1].hits第二条语句运行只需要0秒就显示出来了大家能帮忙说说为什么吗? 好郁闷
set showplan_text on
看看哪些是通過表掃描,哪些是索引~~
而aid,addtime应该都有索引,不会有表扫描,所以速度快得多。
你可以再加一列没有索引的列一起查出来,速度应该和只有hits这列差不多。