mysql高級(jí)學(xué)習(xí)之索引的優(yōu)劣勢及規(guī)則使用
一、索引的優(yōu)劣勢
優(yōu)點(diǎn):可以快速的檢索 、可以加快分組和排序
缺點(diǎn): 占用儲(chǔ)存空間、降低數(shù)據(jù)表的修改操作
二、索引的分類
主鍵索引 | 即主索引,根據(jù)主鍵 pk_clolum(length)建立索引,不允許重復(fù),不允許空值 |
---|---|
唯一索引 | 用來建立索引的列的值必須是唯一的,允許空值 |
普通索引 | 用表中的普通列構(gòu)建的索引,沒有任何限制 |
全文索引 | 用大文本對(duì)象的列構(gòu)建的索引 |
全文索引 | 用大文本對(duì)象的列構(gòu)建的索引; |
組合索引 | 用多個(gè)列組合構(gòu)建的索引,這多個(gè)列中的值不允許有空值。 |
三、使用索引的規(guī)則
1、適合建立索引的情況
- 主鍵自動(dòng)建立唯一索引;
- 經(jīng)常作為查詢條件在 WHERE 或者 ORDER BY 語句中出現(xiàn)的列要建立索引;
- 作為排序的列要建立索引;
- 查詢中與其他表關(guān)聯(lián)的字段,外鍵關(guān)系建立索引;
- 高并發(fā)條件下傾向組合索引;
- 用于聚合函數(shù)的列可以建立索引,例如使用了 max(column_1)或者count(column_1)時(shí)的 column_1 就需要建立索引。
2、不適合建立索引的情況
- 經(jīng)常增刪改的列不要建立索引;
- 有大量重復(fù)的列不建立索引;
- 表記錄太少不要建立索引。
3、索引失靈的情況
- 在組合索引中不能有列的值為 NULL,如果有,那么這一列對(duì)組合索引就是無效的;
- LIKE 操作中,'%aaa%'不會(huì)使用索引,也就是索引會(huì)失效,但是‘a(chǎn)aa%'可以使用索引;
- 在索引的列上使用表達(dá)式或者函數(shù)會(huì)使索引失效;
- 在查詢條件中使用不等于,包括<符號(hào)、>符號(hào)和!=會(huì)導(dǎo)致索引失效;
- 在查詢條件中使用 IS NULL 或者 IS NOT NULL 會(huì)導(dǎo)致索引失效;
- 字符串不加單引號(hào)會(huì)導(dǎo)致索引失效;
- 在查詢條件中使用 OR 連接多個(gè)條件會(huì)導(dǎo)致索引失效,除非 OR 鏈接的每個(gè)條件都加上索引;
- 如果排序的字段使用了索引,那么 select 的字段也要是索引字段,否則索引失效;
- 盡量不要包括多列排序,如果一定要,最好為這隊(duì)列構(gòu)建組合索引。
四、關(guān)于索引的SQL
1、創(chuàng)建表的時(shí)候添加索引
-- 創(chuàng)建表的時(shí)候添加索引 -- INDEX 關(guān)鍵詞 -- myindex 索引的名稱自己起的 -- (username(16))添加到哪一個(gè)字段上 CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX myindex (username(16)) );
2、創(chuàng)建表過后添加索引
-- 添加索引 -- myindex索引的名字(自己定義) -- mytable 表的名字 CREATE INDEX myindex ON mytable(username(16)); 或者 ALTER TABLE mytable ADD INDEX myindex(username);
3 查看索引
-- mytable 表的名字 show index FROM mytable;
4、刪除索引
-- myindex索引的名字(自己定義) -- mytable 表的名字 DROP INDEX myindex ON mytable; 或者 ALTER TABLE mytable DROP INDEX myindex;
總結(jié)
到此這篇關(guān)于mysql高級(jí)學(xué)習(xí)之索引的優(yōu)劣勢及規(guī)則使用的文章就介紹到這了,更多相關(guān)mysql高級(jí)索引內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。