1.對查詢進行優化,應盡量避免全表掃瞄,考慮在 where 及 order by 涉及的列上建立索引。
2.避免使用 left join 和 null 值判斷。left join 比 inner join 消耗更多的資源。
3.避免在 where 子句中使用!=或<>操作符,否則引擎可能放棄使用索引而進行全表掃瞄。
4.避免在 where 子句中使用 or 來連線條件,否則將可能導致引擎放棄使用索引而進行全表掃瞄。
5.in 和 not in 也要慎用,連續的數值能用 between 就不要用 in。
6.下面的查詢也將導致全表掃瞄:
select id from t where name like '%abc%'
7.如果在 where 子句中使用引數,也會導致全表掃瞄。
8.避免在 where 子句中對字段進行表示式操作,這將導致引擎放棄使用索引而進行全表掃瞄。
select id from t where num/2=100
應改為:
select id from t where num=100*2
9.應盡量避免在where子句中對字段進行函式操作,這將導致引擎放棄使用索引而進行全表掃瞄。
select id from t where substring(name,1,3)='abc'
10.不要在 where 子句中的「=」左邊進行函式、算術運算或其他表示式運算,否則系統將可能無法正確使用索引。
11.很多時候用 exists 代替 in 是乙個好的選擇:
select num from a where num in(select num from b)
用下面的語句替換:
select num from a where exists(select 1 from b where num=a.num)
12.盡量使用數字型字段,若只含數值資訊的字段盡量不要設計為字元型,這會降低查詢和連線的效能,並會增加儲存開銷。
13.盡可能的使用 varchar/nvarchar 代替 char/nchar ,因為首先變長字段儲存空間小,可以節省儲存空間
14.任何地方都不要使用 select * from t ,用具體的字段列表代替 *
15.在新建臨時表時,如果一次性插入資料量很大,那麼可以使用 select ... into ... from ... 代替 create table,避免造成大量 log ,以提高速度。
16.在所有的儲存過程和觸發器的開始處設定 set nocount on ,在結束時設定 set nocount off 。
Android中效能優化
由於手機硬體的限制,記憶體和cpu都無法像pc一樣具有超大的記憶體,android手機上,過多的使用記憶體,會容易導致oom,過多的使用cpu資源,會導致手機卡頓,甚至導致anr。我主要是從一下幾部分進行優化 布局優化,繪製優化,記憶體洩漏優化,響應速度優化,listview優化,bitmap優化,...
分類問題中效能評價指標
分類問題中會出現多種演算法,那麼自己如何知道演算法效能的優劣呢,這就需要評價演算法效能好壞的指標,這裡介紹幾個常用的指標.1.準確率 評價分類問題的效能的指標一般是分類準確率,其定義是對於給定的資料,分類正確的樣本數佔總樣本數的比例。accuracy 正確的樣本數 所有樣本數。但是這一指標在不均衡的...
web效能測試中效能指標
web效能測試的部分概念一般來說,乙個web請求的處理包括以下步驟 1 客戶傳送請求 2 web server接受到請求,進行處理 3 web server向db獲取資料 4 web server生成使用者請求的object 頁面 返回給使用者。從客戶傳送請求開始到客戶接收到最後乙個位元組的時間成為...