亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql索引如何優化

發布時間:2021-01-05 11:58:20 來源:億速云 閱讀:265 作者:小新 欄目:MySQL數據庫

小編給大家分享一下Mysql索引如何優化,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

編程沉思錄                            Mysql索引如何優化

B+Tree的特點是,數據都存儲在葉子節點,并且每個葉子節點的數據都是按相同順序(升序或降序)排列存儲的,再者相鄰的葉子節點都用指針連接在一點,這種結構非常適合于范圍查找。

B-Tree索引能夠顯著加快訪問數據的速度,因為存儲引擎不再需要進行全表掃描來獲取需要的數據,而是從索引的根節點逐層往下進行搜索,這大大縮小了存儲引擎掃描數據的范圍,因此對查詢速度的提升非常明顯。

2)Hash索引

Hash索引,顧名思義,就是通過哈希表實現的索引。其特點是只有精確匹配索引的所有列才有效。對于每一行數據,存儲引擎都會對所有索引列計算一個哈希碼,Hash索引把哈希碼存儲在索引中,同時在哈希表中保存指向每個數據行的指針。

在Mysql中,目前只有Memory引擎顯式支持Hash索引,而且由于Hash索引不支持范圍查找,也不支持排序,更不支持部分索引列匹配查找,所以Hash索引用的比較少。

下文將著重介紹B-Tree索引的用法。

為了下文敘述方便,我們將假設有一個user表,其字段如下:

id:bigint類型,主鍵

name:varchar類型

age:int類型

interest:varchar類型

并且在name、age、interest上建立了一個聯合索引index_1,索引順序為(name,age,interest),這個索引順序非常重要,后文將會提及。

二、B-Tree索引的用法

1)全值匹配

全值匹配指的是和索引中所有列進行匹配,如對上述user表查詢 where name='aaa' and age=20 and interest='籃球' 是可以使用到索引的所有列的。

2)匹配最左前綴

匹配最左前綴是指只使用到多列索引的左邊若干列。如對上述user表查詢 where name = 'aaa' 是可以使用到索引的,并且只使用到索引的第一列。

3)匹配列前綴

匹配列前綴是指只匹配某一列的開頭部分,如對上述user表查詢 where name like 'aaa%' 是可以使用到索引的,注意是匹配列的開頭部分,如果查詢的是 where name like '%aaa'就不能使用到索引了。

4)匹配范圍值

如對上述user表查詢 where name > 'aaa' and name < 'bbb' 也是可以使用到索引的。

5)精確匹配某一列并范圍匹配另外一列

如對上述user表查詢 where name='aaa' and age >10,可以使用到索引,并且使用到索引的前2列。

三、B-Tree索引的限制

1)如果不是按照索引的最左列開始查找,則無法使用索引。

如對上述user表查詢 where age=20則無法使用到索引,因為age不是索引列中的最左數據列。

2)不能跳過索引中的列。

如對上述user表查詢 where name='aaa' and interest='足球',則只能使用到索引的第一列,因為where條件中沒有包含age這一列。

以上是“Mysql索引如何優化”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝城县| 兰州市| 徐汇区| 龙川县| 阿拉尔市| 咸丰县| 石林| 夹江县| 临高县| 衡南县| 普兰店市| 谷城县| 灵丘县| 利川市| 靖州| 山东省| 桃园市| 衡东县| 大姚县| 晋城| 莱州市| 张掖市| 潞城市| 揭阳市| 庄浪县| 高雄县| 云林县| 民乐县| 清镇市| 惠来县| 民权县| 仙居县| 象山县| 鄂托克旗| 苍山县| 高唐县| 呼伦贝尔市| 东丰县| 铜川市| 兴义市| 呼玛县|