参考一

 

1.晝量避免使用*通配符;
2.晝量使用數字型字段(不要用字符型代替數字型);
3.合理使用   EXISTS子句
    SELECT   SUM(T1.C1)  
    FROM   T1
    WHERE   (   (SELECT   COUNT(*)   FROM   T2   WHERE   T2.C2=T1.C2)>0)

    SELECT   SUM(T1.C1)  
    FROM   T1
    WHERE   EXISTS   (SELECT   COUNT(*)   FROM   T2   WHERE   T2.C2=T1.C2)  
    後者效率高,因為後者不會產生大量鎖定的表掃描或是索引掃描;
4.避免在WHERE   子句中使用   is   null或is   not   null。因為包含null值的列將不會被包含在索引中,引擎將被迫使用表掃描;
5.晝量避免在WHERE   子句中對字段進行函數或表達式操作,這樣引擎將被迫使用表掃描,如:
    SELECT   *   FROM   T1   WHERE   F1*2=100
    SELECT   *   FROM   T1   WHERE   F1=100/2
    後者效率高,因此應盡量將操作移至等號右側。
6.避免在索引過的字符數據中,使用非找頭字母搜索,這也使得引擎無法使用索引,如:
    SELECT   *   FROM   T1   WHERE   NAME   LIKE   '%L% '                       --表掃描
    SELECT   *   FROM   T1   WHERE   SUBSTRING(NAME,2,1)= 'L '       --表掃描
    SELECT   *   FROM   T1   WHERE   NAME   LIKE   'L% '                         --索引
7.充分利用連接條件。在某些情況下,兩個表之間可能有不止一個連接條件,這時在WHERE子句中將連接條件完整的寫上,有可能會大大提高查詢速度。
8.如果條件許可,可以適當增加冗余字段,雖違背了第三范式,但可提高查詢性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值