海量数据下,索引查找比索引扫描的优势体现

本文针对大量数据表Crawler_Images的SQL查询效率问题,提出了建立索引和调整查询语句两种解决方案。通过创建联合索引并优化查询逻辑,显著提升了查询速度。

    系统中有表Crawler_Images,在表数据达到百万时,以下SQL运行缓慢

        SELECT img.ImageID_int, RemoteURL_nvarchar FROM Crawler_Images  img WHERE img.isFetchSuccess_bit = 0 and img.FetchFailTimes_int<2

 

     建立索引  Create Index index_1 ON  Crawler_Images(isFetchSuccess_bit,  FetchFailTimes_int)      

         查找时,通过了索引扫描,速度提高了,但未满足业务要求

     2 调整语句

                  SELECT img.ImageID_int, 

                             ProductID_int,

                             RemoteURL_nvarchar, LocalPath_nvarchar  
                             FROM Crawler_Images AS img,
                             (
                                 SELECT TOP 10 ImageID_int
                                 FROM Crawler_Images img 
                                 WHERE img.isFetchSuccess_bit = 0

                                      AND img.FetchFailTimes_int <=1

                                      AND FetchFailTimes_int >= 0
                              ) AS tmp
                              WHERE img.ImageID_int = tmp.ImageID_int    

   

      在子查询中,根据索引扫描查找ImageID_int,ImageID_int为主键, 再进行联合索引查找,提高了查询速度。
                 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值