因?yàn)樗饕鄬?duì)比較重要,所以這里單獨(dú)分開說(shuō)明。
一、數(shù)據(jù)索引是干什么用的呢?
數(shù)據(jù)庫(kù)索引其實(shí)就是為了使查詢數(shù)據(jù)效率快。
二、數(shù)據(jù)庫(kù)索引有哪些呢?
聚集索引(主鍵索引):在數(shù)據(jù)庫(kù)里面,所有行數(shù)都會(huì)按照主鍵索引進(jìn)行排序。
非聚集索引:就是給普通字段加上索引。
復(fù)合索引:就是好幾個(gè)字段組成的索引,稱為復(fù)合索引。這里可能還有其他叫法,比如:多列索引、聯(lián)合索引、組合索引。
三、索引有哪些缺點(diǎn)呢?
索引也不是設(shè)置的越多越好的,索引多了占用服務(wù)器的內(nèi)存也會(huì)變多,配置差的服務(wù)器可能會(huì)因?yàn)閮?nèi)存不夠而降低性能。索引還會(huì)減少數(shù)據(jù)新增、刪除、修改時(shí)的速度。所以,創(chuàng)建索引一定要按需創(chuàng)建。
四、什么樣的地方適合創(chuàng)建索引?
1、主鍵自動(dòng)建立唯一索引
2、頻繁作為查詢條件的字段應(yīng)該創(chuàng)建索引
3、查詢中與其他表關(guān)聯(lián)的字段,外鍵關(guān)系建立索引
4、單鍵/組合索引的選擇問(wèn)題,組合索引性價(jià)比更高
5、查詢中排序的字段,排序字段若通過(guò)索引去訪問(wèn)將大大提高排序速度
6、查詢中統(tǒng)計(jì)或分組字段
五、哪些情況不要?jiǎng)?chuàng)建索引
1、表記錄太少(幾十條幾百條)
2、經(jīng)常增刪改的表或字段(如用戶余額)
3、Where條件里用不到的字段不要?jiǎng)?chuàng)建索引
4、過(guò)濾性不好的字段不適合建索引
六、如何創(chuàng)建索引
1、創(chuàng)建自增長(zhǎng)主鍵
我們?cè)谛陆ū砑白侄蔚倪^(guò)程中,可以通過(guò)選擇“是否自動(dòng)添加特殊列”來(lái)自動(dòng)添加包含自增長(zhǎng)、鎖定列、排序列三個(gè)特殊列(詳見(jiàn)“表結(jié)構(gòu)中的特殊列”)。自動(dòng)添加的特殊列需要重新打開窗體才能看到。如果想繼續(xù)添加其他索引的話,得重新打開此窗體。
我們可以通過(guò)下面的方法來(lái)查看創(chuàng)建的索引。
3、創(chuàng)建單列的唯一索引。唯一索引會(huì)約束添加進(jìn)數(shù)據(jù)庫(kù)表中的當(dāng)前列不會(huì)出現(xiàn)重復(fù),一旦重復(fù)就會(huì)返回異常,導(dǎo)致插入失敗。
4、創(chuàng)建復(fù)合索引(也可以叫組合索引)。在當(dāng)前的表中我們已經(jīng)無(wú)法完成復(fù)合索引的創(chuàng)建與刪除了,只能點(diǎn)擊“組合索引”按鈕,打開“索引管理”窗口。
5、創(chuàng)建復(fù)合唯一索引。唯一索引只比上面多了一步。
六、刪除索引
注意,在這里刪除的索引,并不會(huì)立即體現(xiàn)在“數(shù)據(jù)庫(kù)表編輯”窗體上。需要我們重新打開此窗體才會(huì)看到。