站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        MySQL進(jìn)階介紹之索引(總結(jié)分享)

        本篇文章給大家?guī)?lái)了關(guān)于mysql的相關(guān)知識(shí),其中主要介紹了關(guān)于索引的相關(guān)內(nèi)容,包括了索引的優(yōu)勢(shì)和劣勢(shì)、索引的分類(lèi)、索引的結(jié)構(gòu)以及索引的創(chuàng)建等問(wèn)題,下面一起來(lái)看一下,希望對(duì)大家有幫助。

        MySQL進(jìn)階介紹之索引(總結(jié)分享)

        程序員必備接口測(cè)試調(diào)試工具:立即使用
        Apipost = Postman + Swagger + Mock + Jmeter
        Api設(shè)計(jì)、調(diào)試、文檔、自動(dòng)化測(cè)試工具
        后端、前端、測(cè)試,同時(shí)在線協(xié)作,內(nèi)容實(shí)時(shí)同步

        推薦學(xué)習(xí):mysql視頻教程

        索引是什么

        MySQL官方對(duì)索引定義:索引(Index)是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。
        索引的本質(zhì):索引是數(shù)據(jù)結(jié)構(gòu)。
        索引的目的:提高查詢(xún)效率,可以類(lèi)比字典。

        注:可以將索引簡(jiǎn)單的理解為 “排好序的快速查找數(shù)據(jù)結(jié)構(gòu)”。一般來(lái)說(shuō)索引本身也很大,不可能全部存儲(chǔ)在內(nèi)存中,因此索引往往以索引文件的形式存儲(chǔ)的磁盤(pán)上

        我們平常所說(shuō)的索引,如果沒(méi)有特別指明,都是指B樹(shù)(多路搜索樹(shù),并不一定是二叉的)結(jié)構(gòu)組織的索引。其中聚集索引,復(fù)合索引,前綴索引,唯一索引默認(rèn)都是使用B+樹(shù)索引,統(tǒng)稱(chēng)索引。

        索引的優(yōu)勢(shì)和劣勢(shì)

        優(yōu)勢(shì)

        類(lèi)似大學(xué)圖書(shū)館建書(shū)目索引,提高數(shù)據(jù)檢索的效率,降低數(shù)據(jù)庫(kù)的IO成本

        通過(guò)索引列對(duì)數(shù)據(jù)進(jìn)行排序,降低數(shù)據(jù)排序的成本,降低了CPU的消耗

        劣勢(shì)

        索引實(shí)際上是一張表,該表保存了主鍵與索引字段,并指向?qū)嶓w表的記錄,所以索引列也會(huì)占用空間

        雖然索引大大提高查詢(xún)速度,同時(shí)卻會(huì)降低更新表的速度,如對(duì)表進(jìn)行INSERT、UPDATE和DELETE。因?yàn)楦卤頃r(shí),MySQL不僅要保存數(shù)據(jù),還要保存一下索引文件每次更新添加了索引列的字段,都會(huì)調(diào)整因?yàn)楦滤鶐?lái)的鍵值變化后的索引信息

        索引只是提高效率的一個(gè)因素,如果你的MySQL有大數(shù)據(jù)量的表,就需要花時(shí)間研究建立最優(yōu)秀的索引,或優(yōu)化查詢(xún)

        MySQL索引分類(lèi)

        單值索引

        定義:一個(gè)索引只包含單個(gè)列,一個(gè)表可以有多個(gè)單列索引

        注:一般一張表最多而言不要超過(guò)5個(gè)索引

        唯一索引

        定義:索引列的值必須唯一,但允許有空值

        復(fù)合索引

        定義:一個(gè)索引包含多個(gè)列

        基本語(yǔ)法

        • 創(chuàng)建

        CREATE [UNIQUE] INDEX indexName ON mytable(columnnname(length));ALTER mytable ADD [UNIQUE] INDEX [indexName] ON (columnname(length))
        登錄后復(fù)制

        • 刪除

         DROP INDEX [indexName] ON mytable;
        登錄后復(fù)制

        • 查看

        SHOW INDEX FROM table_nameG
        登錄后復(fù)制

        • 使用ALTER命令

        有四種方式添加數(shù)據(jù)表的索引:

        ALTER TABLE tbl_name ADD PRIMARY KEY (column_list):該語(yǔ)句添加一個(gè)主鍵,這意味著索引值必須是唯一的,且不能為NULL。

        ALTER TABLE tbl_name ADD UNIQUE index_name(column_list):這條語(yǔ)句創(chuàng)建索引的值必須是唯一的(除了NULL外,NULL可能會(huì)出現(xiàn)多次)。

        ALTER TABLE tbl_name ADD INDEX index_name(column_list):添加普通索引,索引值可出現(xiàn)多次。

        ALTER TABLE tbl_name ADD FULLTEXT index_name(column_list):該語(yǔ)句指定了索引為FULLTEXT,用于全文索引。

        注:[PRIMARY | UNIQUE | FULLTEXT]: 索引的類(lèi)型,分別表示唯一索引,全文索引。創(chuàng)建數(shù)據(jù)表時(shí),索引類(lèi)型可以省略。
        [INDEX | KEY]: 表示指定在數(shù)據(jù)表中創(chuàng)建索引。

        MySQL索引結(jié)構(gòu)

        • BTree索引

        • Hash索引

        • full_text全文索引

        • R-Tree索引

        索引的創(chuàng)建

        哪些情況需要?jiǎng)?chuàng)建索引

        • 主鍵自動(dòng)建立唯一索引

        • 頻繁作為查詢(xún)條件的字段應(yīng)該創(chuàng)建索引

        • 查詢(xún)中與其它表關(guān)聯(lián)的字段,外鍵關(guān)系建立索引

        • 頻繁更新的字段不適合創(chuàng)建索引,因?yàn)槊看胃虏粏螁问歉掠涗涍€會(huì)更新索引

        • Where條件里用不到的字段不創(chuàng)建索引

        • 單鍵/組合索引的選擇問(wèn)題(在高并發(fā)下傾向創(chuàng)建組合索引)

        • 查詢(xún)中排序的字段,排序字段若通過(guò)索引去訪問(wèn)將大大提高排序速度

        • 查詢(xún)中統(tǒng)計(jì)或者分組字段

        哪些情況不適合創(chuàng)建索引

        • 表記錄太少

        • 經(jīng)常增刪改的表

        • 數(shù)據(jù)重復(fù)且分布平均的表字段,因此應(yīng)該只為最經(jīng)常查詢(xún)和最經(jīng)常排序的數(shù)據(jù)列建立索引。
          注意,如果某個(gè)數(shù)據(jù)列包含許多重復(fù)的內(nèi)容,為它建立索引就沒(méi)有太大的實(shí)際效果

        推薦學(xué)習(xí):mysql視頻教程

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 久久无码精品一区二区三区| 亚洲精品国偷自产在线| 欧美日韩精品一区二区三区不卡 | 国产精品九九九| 国产精品臀控福利在线观看| 日韩精品无码AV成人观看| 欧美精品成人3d在线| 国产精品免费在线播放| 华人在线精品免费观看| 精品无码久久久久久午夜| 亚洲精品视频在线看| 久久久久久国产精品美女| 国产国产成人久久精品| 久久精品国产99国产精偷| 国产精品白丝AV网站| 久久精品国产亚洲AV高清热| 无码人妻精品一区二区三区久久久 | 国产精品亚洲综合一区| 九九热在线精品视频| 97久久超碰成人精品网站| 日韩精品人妻系列无码专区 | 国产欧美日韩综合精品二区| 91精品福利在线观看| 日韩欧美精品不卡| 国产精品久久一区二区三区| 国产精品视频永久免费播放| 久久99精品久久久久婷婷| 嫖妓丰满肥熟妇在线精品| 日产欧美国产日韩精品| 亚洲AV无码国产精品色午友在线 | 99久久精品费精品国产一区二区| 国产成人vr精品a视频| 国产精品无套内射迪丽热巴| 久久久精品人妻一区二区三区蜜桃| 亚洲精品无码精品mV在线观看| 亚洲欧美精品午睡沙发| 一本之道av不卡精品| 少妇人妻偷人精品无码视频新浪| 午夜精品久久久久久中宇| 国产午夜精品久久久久免费视| 国产精品女同久久久久电影院|