數(shù)據(jù)庫(kù)建立索引的一般依據(jù)小結(jié)
建立索引常用的規(guī)則如下:
1、表的主鍵、外鍵必須有索引;
2、數(shù)據(jù)量超過(guò)300的表應(yīng)該有索引;
3、經(jīng)常與其他表進(jìn)行連接的表,在連接字段上應(yīng)該建立索引;
4、經(jīng)常出現(xiàn)在Where子句中的字段,特別是大表的字段,應(yīng)該建立索引;
5、索引應(yīng)該建在選擇性高的字段上;
6、索引應(yīng)該建在小字段上,對(duì)于大的文本字段甚至超長(zhǎng)字段,不要建索引;
7、復(fù)合索引的建立需要進(jìn)行仔細(xì)分析;盡量考慮用單字段索引代替:
A、正確選擇復(fù)合索引中的主列字段,一般是選擇性較好的字段;
B、復(fù)合索引的幾個(gè)字段是否經(jīng)常同時(shí)以AND方式出現(xiàn)在Where子句中?單字段查詢是否極少甚至沒(méi)有?如果是,則可以建立復(fù)合索引;否則考慮單字段索引;
C、如果復(fù)合索引中包含的字段經(jīng)常單獨(dú)出現(xiàn)在Where子句中,則分解為多個(gè)單字段索引;
D、如果復(fù)合索引所包含的字段超過(guò)3個(gè),那么仔細(xì)考慮其必要性,考慮減少?gòu)?fù)合的字段;
E、如果既有單字段索引,又有這幾個(gè)字段上的復(fù)合索引,一般可以刪除復(fù)合索引;
8、頻繁進(jìn)行數(shù)據(jù)操作的表,不要建立太多的索引;
9、刪除無(wú)用的索引,避免對(duì)執(zhí)行計(jì)劃造成負(fù)面影響;
以上是一些普遍的建立索引時(shí)的判斷依據(jù)。一言以蔽之,索引的建立必須慎重,對(duì)每個(gè)索引的必要性都應(yīng)該經(jīng)過(guò)仔細(xì)分析,要有建立的依據(jù)。因?yàn)樘嗟乃饕c不充分、不正確的索引對(duì)性能都毫無(wú)益處:在表上建立的每個(gè)索引都會(huì)增加存儲(chǔ)開(kāi)銷,索引對(duì)于插入、刪除、更新操作也會(huì)增加處理上的開(kāi)銷。另外,過(guò)多的復(fù)合索引,在有單字段索引的情況下,一般都是沒(méi)有存在價(jià)值的;相反,還會(huì)降低數(shù)據(jù)增加刪除時(shí)的性能,特別是對(duì)頻繁更新的表來(lái)說(shuō),負(fù)面影響更大。
相關(guān)文章
sql 左連接和右連接的使用技巧(left join and right join)
今天做項(xiàng)目,發(fā)現(xiàn)左右連接是不一樣的。主要是說(shuō)明了區(qū)別,是不是必須用左連接或右連接,大家可以根據(jù)需要選擇。2010-05-05
一款免費(fèi)開(kāi)源的通用數(shù)據(jù)庫(kù)工具DBeaver
這篇文章主要介紹了一款免費(fèi)開(kāi)源的通用數(shù)據(jù)庫(kù)工具DBeaver,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
SQLite不支持Right Join的解決辦法GROUP BY
sqlite真的不錯(cuò),就是不支持right join,所以我們用下面的方法解決2008-06-06
干掉Navicat,這個(gè)數(shù)據(jù)庫(kù)管理工具真香
這篇文章主要介紹了干掉Navicat,這個(gè)數(shù)據(jù)庫(kù)管理工具真香,本文詳細(xì)的介紹DataGrip的具體使用方法和實(shí)現(xiàn),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
如何自己動(dòng)手寫(xiě)SQL執(zhí)行引擎
本文主要介紹了如何自己動(dòng)手寫(xiě)SQL執(zhí)行引擎,感興趣的同學(xué),可以參考下。2021-06-06
Sql Server、Access數(shù)據(jù)排名的實(shí)現(xiàn)方法(例如:成績(jī)排名)
在很多時(shí)候,我們需要統(tǒng)計(jì)數(shù)據(jù)的排名情況,最常見(jiàn)的是成績(jī)、投票數(shù)等等的。2009-06-06
ADO,OLEDB,ODBC,DAO,RDO的區(qū)別說(shuō)明
ADO,OLEDB,ODBC,DAO,RDO的區(qū)別說(shuō)明,因?yàn)槲覀冇贸绦蜷_(kāi)發(fā)的時(shí)候經(jīng)常會(huì)用到OLEDB,ODBC鏈接數(shù)據(jù)庫(kù)等2012-09-09
基于navicat連接登錄windows10本地wsl數(shù)據(jù)庫(kù)
這篇文章主要介紹了基于navicat連接登錄windows10本地wsl數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
推薦Sql server一些常見(jiàn)性能問(wèn)題的解決方法
具體的SQL語(yǔ)句在很多情況下需要結(jié)合實(shí)際的應(yīng)用情況來(lái)寫(xiě),這里不作敘述。2008-08-08

