索引 : 是針對(duì)數(shù)據(jù)所建立的目錄 .
作用 :? 可以加快查詢速度
負(fù)面影響 :? 降低了增刪改的速度 .
索引的創(chuàng)建原則 :
1: 不要過(guò)度索引
2: 在 where 條件最頻繁的列上加 . 在重復(fù)度高的列上不加,比如性別男女;
3: 盡量索引散列值 , 過(guò)于集中的值加索引意義不大 .
?
索引的類型
普通索引 : ?index? 僅僅是加快查詢速度 .
唯一索引 :?unique?index? 行上的值不能重復(fù)
主鍵索引 :?primary?key? 不能重復(fù) .
主鍵必唯一 , 但是唯一索引不一定是主鍵 .
一張表上 , 只能有一個(gè)主鍵 ,? 但是可以用一個(gè)或多個(gè)唯一索引 .
全文索引 ?:?fulltext?index? 在 mysql 的默認(rèn)情況下 ,? 對(duì)于中文意義不大 . 一般使用第三方解決方案
因?yàn)橛⑽挠锌崭? 標(biāo)點(diǎn)符號(hào)來(lái)拆成單詞 , 進(jìn)而對(duì)單詞進(jìn)行索引 .
而對(duì)于中文, 沒(méi)有空格來(lái)隔開(kāi)單詞 ,mysql 無(wú)法識(shí)別每個(gè)中文詞 .
( 上述 3 種索引 , 都是針對(duì)列的值發(fā)揮作用 , 但全文索引 , 可以針對(duì)值中的某個(gè)單詞 , 比如一篇文章 ,) 全文索引不針對(duì)非常頻繁的詞做索引 , 如 this,?is,?you,?my 等等 .
索引長(zhǎng)度 :指定一列部分內(nèi)容作為索引
多列索引 :兩列或多列值看做整體,當(dāng)做索引。在英文網(wǎng)站時(shí), first?name , last?name 當(dāng)做一個(gè)整體,此時(shí), where 條件中只有 first?name 可以發(fā)揮作用, last?name? 沒(méi)有發(fā)揮作用,這就是作為的左前綴規(guī)則。
冗余索引 :某列有多個(gè)索引,例如在上面 last?name 上再次建立索引。
建立索引
可以在建表時(shí) , 直接聲明索引 , 即在列聲明完畢后 , 聲明索引 .
例如下 :
?create?table?test5?(
?id?int,
?username?varchar(20),
?school?varchar(20),
?intro?text,
?primary?key?(id),
?unique?(username),
?index?(school),
?fulltext?(intro)
?)?engine?myisam?charset?utf8;
?
查看一張表上所有索引
Show?index?from? 表名
?
建立索引
Alter?table? 表名? add?index?/unique/fulltext?[ 索引名 ]?( 列名 )
Alter?table? 表名?? add?primary?key?( 列名 )???//? 不要加索引名 , 因?yàn)橹麈I只有一個(gè)
?
刪除添加索引
刪除非主鍵索引 :Alter?table? 表名? drop/add?index? 索引名 ;
刪除主鍵 :?alter?table? 表名? drop/add??primary?key
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
