1. 避免使用 select * from 表名 ,只查詢需要的需要的字段;
如果表字段較多,用到的字段佔表字段中的少數,使用select *,造成資源浪費,影響sql執行效率;
但是如果查詢的表字段較少,或者表中80%資料字段都是需要用到的,可以使用select * from 表名 ;
2. 限制結果集的資料量。
查詢時不要返回不需要的行、列,用select的where字句選擇所有合適的行,group by用來分組個統計行。
3. or 的查詢盡量用 union或者union all 代替
(在確認沒有重複資料或者不用剔除重複資料時,union all會更好)
4. 根據查詢條件,建立索引,優化索引。
乙個表的索引最多不能超過6個,因為索引越多,對update和insert操作也會有效能的影響,涉及到索引的新建和重建操作。
未完待續......
Sql優化 執行計畫
一段sql 寫好以後,可以通過檢視sql的執行計畫,初步 該sql在執行時的效能好壞,尤其是在發現某個sql語句的效率較差時,我們可以通過檢視執行計畫,分析出該sql 的問題所在。1 開啟熟悉的檢視工具 pl sql developer。在pl sql developer中寫好一段sql 後,按f5...
SQL優化 避免使用 IN 和 NOT IN
1 效率低 2 容易出現問題,或查詢結果有誤 不能更嚴重的缺點 insert into test2 id2 values null 跑題一句 建表的時候最好不要允許含空值,否則問題多多。1 用 exists 或 not exists 代替 select from test1 where exists...
避免全表掃瞄的sql優化
對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在where 及order by 涉及的列上建立索引 嘗試下面的技巧以避免優化器錯選了表掃瞄 使用analyze table tbl name為掃瞄的表更新關鍵字分布。對掃瞄的表使用force index告知mysql,相對於使用給定的索引表掃瞄將非常耗...