mysql優(yōu)化之索引實現(xiàn)原理_第1頁
mysql優(yōu)化之索引實現(xiàn)原理_第2頁
mysql優(yōu)化之索引實現(xiàn)原理_第3頁
免費預(yù)覽已結(jié)束,剩余6頁可下載查看

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

索TABLEtablenamePRIMARYKEY表的方式加入主鍵,例如“ALTERTABLEtablenameADDPRIMARYKEY創(chuàng)建主鍵索TABLEtablenamePRIMARYKEY表的方式加入主鍵,例如“ALTERTABLEtablenameADDPRIMARYKEYcreatetable(idintunsignedprimarykeyauto_increment,namevarchar(32)notnulldefault'');idcreatetablebbbidintnamevarchar(32notnulldefault'');altertableaddprimarykeyaltertablearticlesdropprimary showindexfromshowkeysfrom創(chuàng)建表結(jié)idINTUNSIGNEDAUTO_INCREMENTNOTNULLPRIMARYKEY,titleVARCHAR(200),bodyINSERTINTOarticles(title,body)('HowToUseMySQLWell','Afteryouwentthrougha...'),('OptimizingMySQL','Inthistutorialwewillshow...'),('1001MySQLTricks','1.Neverrunmysqldasroot.2 ('MySQLvs.YourSQL','Inthefollowingdatabase 錯誤用法select*fromarticleswherebodylikemysql%';select*fromarticleswherematch(title,body)against(說明mysqlfulltextmyisammysqlfulltext針對英文生效->sphinxcoreseek)match(字段名against(‘關(guān)鍵字 的匹配度CREATEUNIQUEINDEXONtablenameALTERTABLEtablenameADDUNIQUE[索引的名字](列的列表);CREATETABLEtablename([...],UNIQUE[索引的名字](列的列表));創(chuàng)建表結(jié)createtableddd(idintprimarykeyauto_increment,namevarchar(32)注uniqueNULL,NULL,普通索引(由關(guān)鍵字KEY或INDEX定義的索引)的唯一任務(wù)是加快對數(shù)據(jù)的速度。因createtableccc(idintunsigned,name)createindexon1,數(shù)據(jù)。索引的實現(xiàn)通常使用B樹及其變種B+樹。O(log2n)的復(fù)雜度內(nèi)獲取到相應(yīng)數(shù)詢時間;在經(jīng)常使用在WHERE子句中的列上面創(chuàng)建索引,加快條件的判斷速度。text,imagebit是互相的。當增加索引時,會提高檢索性能,但是會降低修改性能。當減少索引時,會根據(jù)數(shù)據(jù)庫的功能可以在數(shù)據(jù)庫設(shè)計器中創(chuàng)建三種索引唯一索引主鍵索引和索引。emplyee主鍵索引詢中使用鍵索引時它還允對數(shù)的快速。索引在引中,表中行的理順序鍵值的輯(索)順序同一個表只包含一索。比,索引通常提供更快的數(shù)據(jù)速度。由于磁盤順序的效率很高(不需要尋道時間,只需很少的旋轉(zhuǎn)時間,因此對于具有局部性的程序來說,預(yù)讀可以提高I/O效率。4k置并向后連續(xù)一頁或幾頁載入內(nèi)存中,然后異常返回,程序繼續(xù)運行。B-/+TreeB-/+Tree上文一般使用磁盤I/O次數(shù)評價索引結(jié)構(gòu)的優(yōu)劣。先從B-Tree分析,根據(jù)B-Tree的定義,可知檢索一次最多需要h個節(jié)點。數(shù)據(jù)庫系統(tǒng)的設(shè)計者巧妙利用了磁盤預(yù)讀I/O為了達到這個目的,在實際實現(xiàn)B-Tree還需要使用如下技巧:每次新建節(jié)點時,直接申請一個頁的空間,這樣就保證一個節(jié)點物理上也在一個頁里,加之計算機分配都是按頁對齊的,就實現(xiàn)了一個node只需一次I/O。B-Tree中一次檢索最多需要h-1次I/O(根節(jié)點常駐內(nèi)存),漸進復(fù)雜度為O(h)=O(logdN)。d100,h小(通常不超過3法利用局部性,所以樹的I/O漸進復(fù)雜度也為O(h),效率明顯比B-Tree差很多。綜上所述,用B-Tree作為索引結(jié)構(gòu)效率是非常高的。B-B+1)BB樹中每個節(jié)點包含了鍵值和鍵值對于的數(shù)據(jù)對象存放地址指針,所以成功搜索一個對象在B樹中查找給定關(guān)鍵字的方法是:首先把根結(jié)點取來,在根結(jié)點所包含的關(guān)鍵字K1,…,kj(可用順序查找或二分查找法,若找到等于給定值的關(guān)鍵字,則查找成功;否則,一定可以確定要查的關(guān)鍵字在某個Ki或Ki+1之間,于是取Pi所指的下一層索引節(jié)點塊繼續(xù)查找,直到找到,或指針Pi為空時查找失敗。2)B+B+鍵碼從小到大順序。如果實際數(shù)據(jù)對象按加入的順序而不是按關(guān)鍵碼次數(shù)的B+2所以B+樹有兩種搜索方法:BB+a,B維持B+樹的平衡。在插入、刪除操作復(fù)雜度明顯增加。B+樹相比來說是一種較好的折中。c,B樹的查詢效率與鍵在樹中的位置有關(guān),最大時間復(fù)雜度與B+樹相同(在葉結(jié)點的時1B+2DML(update、delete、insert)語句的效率影響①②唯一性太差的字段不適合單獨創(chuàng)建索引,Select*fromempwheresex=’男③④wherewherecreatePROCEDUREinsert_dept(increatePROCEDUREinsert_dept(instartint(10),inmax_numint(10))declareiintDEFAULT0; setinsertintodeptvaluesUNTILi=max_numendREPEAT;callaltertablea

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論