日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

索引创建以及优化_1

發(fā)布時(shí)間:2024/4/13 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 索引创建以及优化_1 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
怎么去創(chuàng)建索引啊,我們先看第一種啊1. 普通索引,所謂的普通索引是什么啊,就是index,比如像這種primary key,還有index,還有unique,這些都可以把它劃分到普通索引當(dāng)中,他除了有普通索引以外,唯一索引,全文索引,還有一個(gè)聚合組合索引,4大索引,普通索引就是index,既不是組件也不是惟一的,那普通索引怎么創(chuàng)建呢,其實(shí)是比較簡(jiǎn)單的,這是最基本的索引,他沒(méi)有任何限制,MYISAM中默認(rèn)的B-TREE索引,也是我們大多數(shù)情況下要用到的索引,也就是我們建索引其實(shí)更多的就是建index索引,我們來(lái)看他的語(yǔ)法格式是及其簡(jiǎn)單的,直接創(chuàng)建, create index [index_name] on [table_name](column(length)),括號(hào)括起來(lái)是指索引的名字,我們一定要給索引起名字,不僅僅是普通索引,包括我們主鍵索引,唯一性索引,還有組合索引,我們都應(yīng)該有名字,有名字的好處是什么呢,你未來(lái)想刪除索引的時(shí)候,他都是根據(jù)索引的名字去刪的,明白這個(gè)意思吧[table_name]是指在哪個(gè)表上創(chuàng)建索引,[column(length)]然后給哪個(gè)列創(chuàng)建索引,你看列里給了一個(gè)length,那么這個(gè)長(zhǎng)度表示什么含義呢,你在創(chuàng)建索引的時(shí)候,這個(gè)長(zhǎng)度就是要把這個(gè)索引這個(gè)列里字段的值取多長(zhǎng)放到索引里,如果不寫length,那他就會(huì)把這列里所有的數(shù)據(jù)等長(zhǎng)度的塞到索引里,比如說(shuō),我現(xiàn)在有name這樣的一個(gè)列,然后這個(gè)列里有什么值呢,然后我在給name創(chuàng)建索引的時(shí)候,我再給name字段沒(méi)有寫length,它會(huì)把這條數(shù)據(jù)里的這一列的值全都加在數(shù)據(jù)里,能明白嗎,那么所帶來(lái)的問(wèn)題是什么呢索引他的存儲(chǔ)空間肯定需要很大,但是實(shí)際上我們?cè)谡覕?shù)據(jù)的時(shí)候,我要找abc的,abc和abab都是以a開(kāi)頭,那我可以取3位,3位什么意思呢,只把其他的前3位放到索引里,那就可以通過(guò)前3位去區(qū)分abc和abab,所以索引來(lái)給定長(zhǎng)度,所帶來(lái)的好處,這種索引叫短索引,是可以進(jìn)一步提升索引檢索的性能,如果沒(méi)給length,把整個(gè)列都放到里面,這就叫長(zhǎng)索引了,我們來(lái)試一下,來(lái)創(chuàng)建一個(gè)最普通的索引,我們先創(chuàng)建一個(gè)表,當(dāng)然你也可以通過(guò)命令來(lái)創(chuàng)建,id,類型int,然后來(lái)一個(gè)u_name,varchar,長(zhǎng)度20,允許為空,u_age,int類型,這樣一個(gè)表就創(chuàng)建好了,這里又一個(gè)查看索引的命令,show index from [table_name],那現(xiàn)在在我這個(gè)表里,有幾個(gè)索引,只有一個(gè),什么索引啦,不是普通索引,唯一性索引,主鍵嗎,我們可以查一下,新建查詢,show index from users;下面會(huì)顯示表的索引信息,table是users,Key_name就是PRIMARY,你沒(méi)給他起名默認(rèn)就是PRIMARY作為他的名稱,明白嗎,然后注意看它是用什么來(lái)做他的索引的,Index_Type是BTREE類型的,這是主鍵索引比如我們這個(gè)name會(huì)經(jīng)常會(huì)在where語(yǔ)句后面作為查詢條件,那我是不是可以給這個(gè)name加一個(gè)索引啊,是吧,但是你能給她加一個(gè)主鍵嗎,因?yàn)樗磥?lái)的內(nèi)容可能會(huì)有重復(fù)的,所以不能加主鍵索引,也不能加唯一性索引,就得加普通的index索引,那怎么創(chuàng)建呢,有多種情況,首先來(lái)看第一個(gè)1. 第一個(gè)直接創(chuàng)建,create index [索引名] on [表名](column(length));先用直接創(chuàng)建這種方式,這個(gè)名字盡量要和可能的關(guān)鍵字避免開(kāi)on后面是哪個(gè)表,這個(gè)表里給誰(shuí)建索引啊,create index name_index on users(u_name);運(yùn)行是不是創(chuàng)建完了,我們是不是把整個(gè)列作為索引項(xiàng)了,我們?cè)偃how index from user;是不是多了一條數(shù)據(jù),這Key_name是不是name_index,往后看,column_name叫u_name,也是BTREE類型索引,這就創(chuàng)建完了,是不是很簡(jiǎn)單,我現(xiàn)在想刪除掉索引怎么辦,也非常簡(jiǎn)單2.刪除索引,一種是直接刪除法, drop 索引名 on [表名];還有一種是通過(guò)修改表的方式,直接刪除法,drop index刪除一個(gè)索引,索引名字叫name_index,然后on users這個(gè)表,drop index name_index on users;然后我們show index from users;沒(méi)了吧,這就是刪除index,剛才我們用的create index方式,還有一種方式是什么呢,是對(duì)表修改來(lái)添加索引,我們修改表用什么命令來(lái)著,用alter,來(lái)看一下,他的語(yǔ)法結(jié)構(gòu)也是比較簡(jiǎn)單的,alter table修改表,然后表的名字,你要對(duì)哪個(gè)表進(jìn)行修改,然后你要修改什么,ADD INDEX添加一個(gè)索引,然后索引名稱,和索引列,那么我們用這個(gè)命令再來(lái)做一個(gè),添加索引,alter table users add index name_index(u_name);然后對(duì)他做一個(gè)什么樣的操作呢,add index添加索引,索引的名稱叫什么呢,叫name_index,誰(shuí)擁有這個(gè)名字呢,執(zhí)行也成功了吧,然后再show index from users;是不是一樣有這個(gè)東西,是不是還是BTREE類型的,我先把它刪掉,drop index name_index on users;show index from users;沒(méi)有了吧,為什么把它刪了呢,剛才我們直接創(chuàng)建和直接修改表創(chuàng)建,所創(chuàng)建的索引都是長(zhǎng)索引,長(zhǎng)索引是什么含義來(lái)的,會(huì)把這個(gè)列里面所有的值完整的作為索引的一部分,那我們是不是可以建短索引,短索引什么含義呢,就是可以指定長(zhǎng)度,把這個(gè)值的指定長(zhǎng)度加到索引里面,其他的不加,那怎么來(lái)建這個(gè)短索引呢,這個(gè)很簡(jiǎn)單,括號(hào)加長(zhǎng)度,比如是2,alter table users add index name_index(u_name(2));這是什么,只取內(nèi)容的前兩個(gè)字符作為存儲(chǔ)信息的信息列,好不好使呢,我們運(yùn)行,是不是一樣可以創(chuàng)建,show index from users;你看Sub_part,是不是長(zhǎng)度為2,懂了嗎,那么總的來(lái)說(shuō)創(chuàng)建普通索引還是比較簡(jiǎn)單的吧3. 直接修改說(shuō)了,直接刪除說(shuō)了,還有一個(gè)是創(chuàng)建表的時(shí)候就可以指定索引,創(chuàng)建表的語(yǔ)句還會(huì)不會(huì)寫啦,咱們寫一個(gè)比如我現(xiàn)在要?jiǎng)?chuàng)建一個(gè)什么表呢,我要?jiǎng)?chuàng)建一個(gè)Person,然后里面有id字段,里面有p_name字段,有p_age字段,怎么創(chuàng)建,create table創(chuàng)建一個(gè)表,然后后面跟一個(gè)表名,括號(hào),里面跟著列名,類型,及其特點(diǎn),比如id,什么類型呢,int類型的,然后是不是可以primary key,是不是還可以自動(dòng)增長(zhǎng)啊auto_incrementcreate table person (id int primary key auto_increment,p_name varchar(40),INDEX (p_name) )

?

總結(jié)

以上是生活随笔為你收集整理的索引创建以及优化_1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。