數(shù)據(jù)庫(kù)優(yōu)化
數(shù)值的對(duì)比要比字符串快,以后建表時(shí),能用數(shù)值代替的上祈,盡量不要使用字符串
數(shù)值比較節(jié)省空間
給列做索引,索引可以大大加強(qiáng)查詢的速度
聯(lián)合索引浙芙,給AB兩列做聯(lián)合索引登刺,where A
索引會(huì)加重?cái)?shù)據(jù)庫(kù)負(fù)擔(dān)
1.應(yīng)盡量避免在where子句中對(duì)字段進(jìn)行null值判斷,否則將導(dǎo)致引擎放棄
使用索引進(jìn)行全表掃描
2.對(duì)查詢進(jìn)行優(yōu)化嗡呼,應(yīng)盡量避免全表掃描纸俭,首先考慮在where及order by上
建立索引
3.應(yīng)盡量避免在where子句中使用!=或<>操作符南窗,否則將引擎放棄使用索引而進(jìn)行
全表掃描
4.應(yīng)該盡量避免在where子句中使用or來(lái)連接條件揍很,否則將導(dǎo)致引擎放棄使用使用索引而進(jìn)行全表掃描
5.in可以使用索引
6.應(yīng)盡量避免在where子句中對(duì)字段進(jìn)行表達(dá)式操作
7.應(yīng)盡量避免在where子句中對(duì)字段進(jìn)行函數(shù)操作
8.很多時(shí)候exists代替in是一個(gè)好的選擇
9.盡量使用數(shù)字型字段
10.盡可能的使用varchar/nvarchar代替char/nchar郎楼,因?yàn)槭紫茸侄未鎯?chǔ)
空間小,可以節(jié)省存儲(chǔ)空間
11.任何地方都不要使用select * from t,用具體的字段列表代替‘*’
不要返回用不到的任何字段
12.盡量使用表變量來(lái)代替臨時(shí)表窒悔。如果表變量包含大量數(shù)據(jù)呜袁,請(qǐng)注意
索引非常有限(只有主鍵索引)。
13.避免頻繁創(chuàng)建和刪除臨時(shí)表简珠,以減少系統(tǒng)表資源的消耗
14.在新建臨時(shí)表時(shí)阶界,如果一次性插入數(shù)據(jù)量很大,那么可以使用select into
代替create table聋庵,避免造成大量log,以提高速度膘融;如果數(shù)據(jù)量不大,未來(lái)緩和
系統(tǒng)表的資源祭玉,應(yīng)先create table 氧映,避免造成大量log,以提高速度攘宙;如果
數(shù)據(jù)量不大屯耸,未來(lái)緩和系統(tǒng)表的資源,應(yīng)先create table蹭劈,然后insert
總結(jié):
能使用索引(排序,二分查找)线召,效率高
大量的臨時(shí)表铺韧,大數(shù)據(jù)的臨時(shí)表加重內(nèi)存的負(fù)擔(dān),不如直接建議實(shí)體表
盡量不要使用I*缓淹,以便養(yǎng)成好的習(xí)慣
盡量使用數(shù)值型的字段