從大多數數據庫應用系統的實例來看,查詢操作在各種數據庫操作中所占據的比重最大,而查詢操作所基于的SELECT語句在SQL語句中又是代價最大的語句。
查詢語句(SELECT)的優化建議
(1)、合理使用索引:where子句中變量順序應與索引字鍵順序相同。
如:create index test_idx on test(hm, rq, xx)
索引字鍵順序:首先是號碼hm,其次是日期rq,最后是標志xx,所以where子句變量順序應是where hm<=“P1234”and rq=“06/06/1999”and xx=“DDD”,不應是where xx=“DDD”and rq=“06/06/1999”and hm <=“P1234”這樣的不按索引字鍵順序寫法。
(2)、將最具有限制性的條件放在前面,大值在前,小值在后。
如:where colA<=10000 AND colA>=1 效率高
where colA>=1 AND colA<=10000 效率低
(3)、避免采用MATCHES和LIKE通配符匹配查詢
通配符匹配查詢特別耗費時間。即使在條件字段上建立了索引,在這種情況下也還是采用順序掃描的方式。
例如語句:SELECT *FROM customer WHERE zipcode MATCHES “524*”
可以考慮將它改為SELECT *FROM customer WHERE