今天在優(yōu)化一段sql,原腳本大致如下:
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供海晏網(wǎng)站建設(shè)、海晏做網(wǎng)站、海晏網(wǎng)站設(shè)計、海晏網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、海晏企業(yè)網(wǎng)站模板建站服務(wù),十多年海晏做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
select a.字段n from tab_a a where a.字段2 is not null;
a.字段2增加了索引的,但是查詢速度非常慢,
于是做了如下修改:
select a.字段n from tab_a a where nvl(a.字段2,'0' ) != '0';
速度提升很明顯。
原因是什么呢?其實很簡單,因為is null和is not null使字段的索引失效了。
雖然都知道哪些情形下會使索引失效,但是有時難免受業(yè)務(wù)需求的影響而考慮的不夠全面,所以sql優(yōu)化要時刻進(jìn)行,隨時進(jìn)行。努力提高sql的執(zhí)行效率。