數(shù)據(jù)庫建立索引的一般依據(jù)小結(jié)
建立索引常用的規(guī)則如下:
1、表的主鍵、外鍵必須有索引;
2、數(shù)據(jù)量超過300的表應(yīng)該有索引;
3、經(jīng)常與其他表進行連接的表,在連接字段上應(yīng)該建立索引;
4、經(jīng)常出現(xiàn)在Where子句中的字段,特別是大表的字段,應(yīng)該建立索引;
5、索引應(yīng)該建在選擇性高的字段上;
6、索引應(yīng)該建在小字段上,對于大的文本字段甚至超長字段,不要建索引;
7、復(fù)合索引的建立需要進行仔細(xì)分析;盡量考慮用單字段索引代替:
A、正確選擇復(fù)合索引中的主列字段,一般是選擇性較好的字段;
B、復(fù)合索引的幾個字段是否經(jīng)常同時以AND方式出現(xiàn)在Where子句中?單字段查詢是否極少甚至沒有?如果是,則可以建立復(fù)合索引;否則考慮單字段索引;
C、如果復(fù)合索引中包含的字段經(jīng)常單獨出現(xiàn)在Where子句中,則分解為多個單字段索引;
D、如果復(fù)合索引所包含的字段超過3個,那么仔細(xì)考慮其必要性,考慮減少復(fù)合的字段;
E、如果既有單字段索引,又有這幾個字段上的復(fù)合索引,一般可以刪除復(fù)合索引;
8、頻繁進行數(shù)據(jù)操作的表,不要建立太多的索引;
9、刪除無用的索引,避免對執(zhí)行計劃造成負(fù)面影響;
以上是一些普遍的建立索引時的判斷依據(jù)。一言以蔽之,索引的建立必須慎重,對每個索引的必要性都應(yīng)該經(jīng)過仔細(xì)分析,要有建立的依據(jù)。因為太多的索引與不充分、不正確的索引對性能都毫無益處:在表上建立的每個索引都會增加存儲開銷,索引對于插入、刪除、更新操作也會增加處理上的開銷。另外,過多的復(fù)合索引,在有單字段索引的情況下,一般都是沒有存在價值的;相反,還會降低數(shù)據(jù)增加刪除時的性能,特別是對頻繁更新的表來說,負(fù)面影響更大。
相關(guān)文章
復(fù)制數(shù)據(jù)庫表中兩個字段數(shù)據(jù)的SQL語句
今天為表新添加一個字段,但又想與表中的另一個字段值相同,由于數(shù)據(jù)過多想通過sql語句實現(xiàn),經(jīng)測試下面的這句話確實很好用2013-07-07數(shù)據(jù)庫查詢中遭遇特殊字符導(dǎo)致問題的解決方法
數(shù)據(jù)庫查詢中遭遇特殊字符導(dǎo)致問題的解決方法,我們提供的是asp的,但其它的數(shù)據(jù)庫與語言下的解決方法也大同小異。2007-12-12GaussDB數(shù)據(jù)庫使用COPY命令導(dǎo)入導(dǎo)出數(shù)據(jù)的場景分析
使用COPY命令可以方便地導(dǎo)入數(shù)據(jù)到GaussDB,GaussDB還提供了其他數(shù)據(jù)導(dǎo)入工具和功能,如使用GDS導(dǎo)入數(shù)據(jù)、使用INSERT多行插入、使用gsql元命令導(dǎo)入數(shù)據(jù)、ETL工具集成等,以滿足不同場景下的數(shù)據(jù)導(dǎo)入需求,對GaussDB COPY命令相關(guān)知識感興趣的朋友一起看看吧2024-01-01關(guān)于數(shù)據(jù)庫性能優(yōu)化中的表結(jié)構(gòu)優(yōu)化
這篇文章主要介紹了關(guān)于數(shù)據(jù)庫性能優(yōu)化中的表結(jié)構(gòu)優(yōu)化,合理的表結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)庫的查詢效率和性能,而不合理的表結(jié)構(gòu)設(shè)計則可能導(dǎo)致查詢效率低下、數(shù)據(jù)冗余、數(shù)據(jù)不一致等問題,需要的朋友可以參考下2023-07-07只有兩個字段用一個sql語句查詢出某個學(xué)生的姓名、成績以及在表中的排名
這篇文章主要介紹了只有兩個字段用一個sql語句查詢出某個學(xué)生的姓名、成績以及在表中的排名,需要的朋友可以參考下2014-08-08MSSQL轉(zhuǎn)MySQL數(shù)據(jù)庫的實際操作記錄
今天把一個MSSQL的數(shù)據(jù)庫轉(zhuǎn)成MySQL,在沒有轉(zhuǎn)換工具的情況下,對于字段不多的數(shù)據(jù)表我用了如下手功轉(zhuǎn)換的方法,還算方便。MSSQL使用企業(yè)管理器操作,MySQL用phpmyadmin操作。2010-06-06