1、字段提取要按照「需多少、提多少」的原則,避免「select *」,盡量使用「select 欄位1,欄位2,欄位3 ...」。實踐證明,每少提取乙個字段,資料庫提取速度就會有相應的提公升。提公升的速度還要由你捨棄的字段大小來決定。
2、盡量使用exists代替select count(*) 來判斷是否存在記錄。優化器優化exists謂詞時支援短路功能。只要找到一行,不需要再掃瞄其他行就可以確定該錶是否包涵行了。count函式只有在統計表中所有行的行數時使用。
3、盡量使用(not) exists代替(not) in 操作,in的sql效能總是比較低的。
?
1
2
3
4
5
6
7
--語句
select
dname,deptno
from
dept
where
deptno
not
in
(
select
deptno
from
emp
where
dept.deptno=emo.deptno)
--語句
select
dname,deptno
from
dept
where
not
exists(
select
deptno
from
emp
where
dept.deptno=emo.deptno)
4、盡量使用not in,可以用left outer join代替它。
5、盡量不要使用or,使用or會引起全表掃瞄,將大大降低查詢效率
6、注意where子句的寫法,必須考慮語句順序,應該根據索引順序、範圍大小來確定條件子句的前後順序,盡可能地讓字段順序與索引順序一致,範圍從大到小。
7、盡量使用「>=「,不用使用」>「
8、在編寫sql語句之前了解表的索引結構。有效地利用索引能夠避免不必要的全表掃瞄,縮短查詢時間。應該避免在where子句中使用is null、<>、!=、not、 not exist、not in、not like等命令,他們通常會引起全表掃瞄導致索引無效。
9、在where 子句中,任何對列的操作(函式、計算等)講導致索引失效,這些操作應該盡可能地移至等號右邊,如where substring(id,1,1)=『a『,應該寫成where id like 'a%『;where result*10> 30應該寫成where result >30;
對sql命令進行優化的基本原則是儘量減少型別轉換和計算,充分利用表索引,減少全表掃瞄的次數。
springboot如何進行優化
這一部分分為三個部分,啟動部分的優化,tomcat引數設定和記憶體調優 configuration enableautoconfiguration 用 bean 註解顯式配置,以便被 spring 掃瞄到 bean public messagecontroller messagecontroller...
如何進行java系統優化
上面這個核心字多點說也就是 更多使用者訪問 更短響應時間 資料正確性。優化的過程,我的想法就是先順藤摸瓜,沿著乙個請求發生的路徑一路看過去,測量一下每個點上消耗的時間,會發現很多消耗時間多的點,都是值得你去優化的地方。然後再考慮在每個點上發生了擁擠導致響應時間變長了又該怎麼解決。當然也不需要一上來就...
如何進行mysql的優化
1 設計表的時候考慮選擇什麼樣的儲存引擎,myisam不之策事務,但查詢速度快,不過現在一般採用的都是inndb,能符合95 的專案需求。2 避免全表查詢的操作。3 在where 和 order by 的字段建立索引。但索引不是越多越好,會使insert 和update 的速度變慢。4 盡量不要採用...