數(shù)據(jù)庫(kù)優(yōu)化是個(gè)嚴(yán)肅復(fù)雜的問(wèn)題,網(wǎng)站建設(shè)怎么進(jìn)行數(shù)據(jù)庫(kù)優(yōu)化呢?
1. 對(duì)什么列建索引
除了這個(gè)索引之外還需要在哪些列上建索引呢?這個(gè)問(wèn)題只能具體情況具體分析,數(shù)據(jù)庫(kù)默認(rèn)情況下會(huì)對(duì)主鍵建聚集索引。要看需要優(yōu)化的sql語(yǔ)句(通常是查詢次數(shù)多,查詢相應(yīng)想要高的語(yǔ)句)根據(jù)什么列的條件進(jìn)行查詢。
2. 復(fù)合索引要注意列順序
A列的葉節(jié)點(diǎn)上才會(huì)開(kāi)始根據(jù)B列建二叉樹(shù)。所以包括兩個(gè)列的索引就需要根據(jù)查詢條件所在列來(lái)決定兩個(gè)列在索引中的順序。索引在數(shù)據(jù)庫(kù)中是以二叉樹(shù)的形式存儲(chǔ)的包括A,B兩個(gè)列的索引會(huì)首先根據(jù)A列建二叉樹(shù)。
3. 索引的個(gè)數(shù)問(wèn)題
除非你完全不在乎修改數(shù)據(jù)的效率。另外sqlserver自身會(huì)對(duì)索引的數(shù)量和索引的數(shù)據(jù)長(zhǎng)度有限制,索引提高查詢效率是以降低更新、拔出、刪除的速度為代價(jià)的每當(dāng)索引列發(fā)生變化時(shí)都需要對(duì)索引數(shù)據(jù)進(jìn)行相應(yīng)的調(diào)整。所以一個(gè)表上不可以建太多的索引。