這篇文章久之前,不知從**看到就儲存在本地的txt文件中,現在貼到部落格中,防止消失。
1.應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃瞄,如:
select id from t where num is null
可以在num上設定預設值0,確保表中num列沒有null值,然後這樣查詢:
select id from t where num=0
2.應盡量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃瞄。優化器將無法通過索引來確定將要命中的行數,因此需要搜尋該錶的所有行。
3.應盡量避免在 where 子句中使用 or 來連線條件,否則將導致引擎放棄使用索引而進行全表掃瞄,如:
select id from t where num=10 or num=20
可以這樣查詢:
select id from t where num=10
union all
select id from t where num=20
sql優化建議
1 少用 不用 多表操作 子查詢,連線查詢 2 大量資料的插入 多條insert load data into talbe 建議,先關閉約束及索引,完成資料插入,再重新生成索引及約束。針對myisam alter table 表名 disable keys 禁用索引約束 alter table 表名...
優化SQL的建議
1.用truncate替代delete 當刪除表中的記錄時,在通常情況下,回滾段 rollback segments 用來存放可以被恢復的資訊。如果你沒有 commit事務,oracle會將資料恢復到刪除之前的狀態 準確地說是恢復到執行刪除命令之前的狀況 而當運用truncate時,回滾段不再存放任...
sql語句優化建議
1.不論乙個sql中涉及到多少表,每次都用兩個表 結果集 操作,得到新的結果後,再和下乙個表 結果集 操作。2.避免在select f1,select f2 from tableb from tablea 這樣得到欄位列。直接用tablea和tableb關聯得到a.f1,b.f2就可以了。3.避免隱...