一、sql數(shù)據(jù)庫(kù)中什么情況該加索引index
1、表的某個(gè)字段值得離散度越高,該字段越適合選作索引的關(guān)鍵字。主鍵字段以及少數(shù)性約束字段適合選作索引的關(guān)鍵字,原因就是這些字段的值非常離散。尤其是在主鍵字段創(chuàng)建索引時(shí),cardinality的值就等于該表的行數(shù)。
MySQL 在處理主鍵約束以及少數(shù)性約束時(shí),考慮周全。數(shù)據(jù)庫(kù)用戶(hù)創(chuàng)建主鍵約束的同時(shí), MySQL 自動(dòng)創(chuàng)建主索引( primary index ),且索引名稱(chēng)為 Primary;數(shù)據(jù)庫(kù)用戶(hù)創(chuàng)建少數(shù)性索引時(shí), MySQL 自動(dòng)創(chuàng)建少數(shù)性索引( unique index ),默認(rèn)情況下,索引名為少數(shù)性索引的字段名。
2、 占用存儲(chǔ)空間少的字段更適合選作索引的關(guān)鍵字。例如,與字符串相比,整數(shù)字段占用的存儲(chǔ)空間較少,因此,較為適合選作索引關(guān)鍵字。
3、 存儲(chǔ)空間固定的字段更適合選作索引的關(guān)鍵字。與 text 類(lèi)型的字段相比, char 類(lèi)型的字段較為適合選作索引關(guān)鍵字。
4、 Where 子句中經(jīng)常使用的字段應(yīng)該創(chuàng)建索引,分組字段或者排序字段應(yīng)該創(chuàng)建索引,兩個(gè)表的連接字段應(yīng)該創(chuàng)建索引。
5、 更新頻繁的字段不適合創(chuàng)建索引,不會(huì)出現(xiàn)在 where 子句中的字段不應(yīng)該創(chuàng)建索引。
6、 最左前綴原則。
7、 盡量使用前綴索引。
延伸閱讀:
二、應(yīng)用架構(gòu)是什么
應(yīng)用架構(gòu)(Application Architecture)是描述了IT系統(tǒng)功能和技術(shù)實(shí)現(xiàn)的內(nèi)容。應(yīng)用架構(gòu)分為以下兩個(gè)不同的層次:
企業(yè)級(jí)的應(yīng)用架構(gòu):企業(yè)層面的應(yīng)用架構(gòu)起到了統(tǒng)一規(guī)劃、承上啟下的作用,向上承接了企業(yè)戰(zhàn)略發(fā)展方向和業(yè)務(wù)模式,向下規(guī)劃和指導(dǎo)企業(yè)各個(gè)IT系統(tǒng)的定位和功能。在企業(yè)架構(gòu)中,應(yīng)用架構(gòu)是最重要和工作量最大的部分,他包括了企業(yè)的應(yīng)用架構(gòu)藍(lán)圖、架構(gòu)標(biāo)準(zhǔn)/原則、系統(tǒng)的邊界和定義、系統(tǒng)間的關(guān)聯(lián)關(guān)系等方面的內(nèi)容。單個(gè)系統(tǒng)的應(yīng)用架構(gòu):在開(kāi)發(fā)或設(shè)計(jì)單一IT系統(tǒng)時(shí),設(shè)計(jì)系統(tǒng)的主要模塊和功能點(diǎn),系統(tǒng)技術(shù)實(shí)現(xiàn)是從前端展示到業(yè)務(wù)處理邏輯,到后臺(tái)數(shù)據(jù)是如何架構(gòu)的。這方面的工作一般屬于項(xiàng)目組,而不是企業(yè)架構(gòu)的范疇。