成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL到底支不支持哈希索引?

數據庫 MySQL
什么是自適應哈希索引(Adaptive Hash Index, AHI)呢?原理又是怎樣的呢?下面我們先從一個例子開始。

經常有朋友問,MySQL的InnoDB到底支不支持哈希索引?

對于InnoDB的哈希索引,確切的應該這么說:

(1)InnoDB用戶無法手動創建哈希索引,這一層上說,InnoDB確實不支持哈希索引;

(2)InnoDB會自調優(self-tuning),如果判定建立自適應哈希索引(Adaptive Hash Index, AHI),能夠提升查詢效率,InnoDB自己會建立相關哈希索引,這一層上說,InnoDB又是支持哈希索引的;

那什么是自適應哈希索引(Adaptive Hash Index, AHI)呢?原理又是怎樣的呢?咱們先從一個例子開始。

不妨設有InnoDB數據表:

t(id PK, name KEY, sex, flag)

畫外音:id是主鍵,name建了普通索引。 假設表中有四條記錄:

  • 1, shenjian, m, A
  • 3, zhangsan, m, A
  • 5, lisi, m, A
  • 9, wangwu, f, B

如上圖,通過前序知識,容易知道InnoDB在主鍵id上會建立聚集索引(Clustered Index),葉子存儲記錄本身,在name上會建立普通索引(Secondary Index),葉子存儲主鍵值。

發起主鍵id查詢時,能夠通過聚集索引,直接定位到行記錄。

select * from t where name='ls';

發起普通索引查詢時:

(1)會先從普通索引查詢出主鍵(上圖右邊);

(2)再由主鍵,從聚集索引上二次遍歷定位到記錄(上圖左邊)。

不管聚集索引還是普通索引,記錄定位的尋路路徑(Search Path)都很長。

在MySQL運行的過程中,如果InnoDB發現,有很多SQL存在這類很長的尋路,并且有很多SQL會命中相同的頁面(page),InnoDB會在自己的內存緩沖區(Buffer)里,開辟一塊區域,建立自適應哈希所有AHI,以加速查詢。

從這個層面上來說,InnoDB的自使用哈希索引,更像“索引的索引”,畢竟其目的是為了加速索引尋路。

既然是哈希,key是什么,value是什么?

key是索引鍵值(或者鍵值前綴)。

value是索引記錄頁面位置。

為啥叫“自適應(adaptive)”哈希索引?

系統自己判斷“應該可以加速查詢”而建立的,不需要用戶手動建立,故稱“自適應”。

系統會不會判斷失誤,是不是一定能加速?

不是一定能加速,有時候會誤判。 當業務場景為下面幾種情況時:

(1)很多單行記錄查詢(例如passport,用戶中心等業務);

(2)索引范圍查詢(此時AHI可以快速定位首行記錄);

(3)所有記錄內存能放得下;

AHI往往是有效的。

畫外音:任何脫離業務的技術方案,都是耍流氓。

當業務有大量like或者join,AHI的維護反而可能成為負擔,降低系統效率,此時可以手動關閉AHI功能。

一個小知識點,希望對大家有幫助。

知其然,知其所以然。

責任編輯:趙寧寧 來源: 架構師之路
相關推薦

2020-07-02 10:30:52

iPhone蘋果北斗

2019-10-11 08:44:38

InnoDB哈希索引MySQL

2021-04-20 19:23:07

語法switch-casePython

2011-12-09 20:28:50

2009-04-15 10:58:36

2021-10-27 07:15:36

Go 循環引用

2010-06-24 17:42:08

服務不支持chkcon

2020-07-22 08:01:41

Python開發運算符

2020-10-09 06:48:19

Pythonswitch語句

2020-10-20 07:13:44

Web動態化CSS

2010-05-25 10:44:51

MySQL數據庫

2021-12-09 10:51:47

Go繼承

2021-12-15 07:49:22

Go語言設計

2010-06-24 17:37:59

服務不支持chkcon

2010-12-20 14:22:27

Nvidia英特爾Sandy Bridg

2021-02-01 13:53:53

StringlongJava

2009-09-01 13:18:38

雪豹蘋果操作系統

2011-12-13 20:53:45

Flash

2012-02-01 10:20:19

Firefox 10發布

2023-01-28 08:05:32

轉換Go泛型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久免费少妇高潮毛片 | 欧美久久一级特黄毛片 | 欧美一区免费 | 国产成人在线视频 | 久久无毛 | 久久久精选| 精品国产乱码久久久久久中文 | 久久精品中文 | 国产情侣一区 | 99精品久久 | 亚洲精品99999 | 99精品免费| 91久久国产综合久久91精品网站 | 成人免费在线观看视频 | 精品国产成人 | 精品国产乱码久久久久久88av | 在线免费观看毛片 | 中文字幕影院 | 综合久久av | 久久久av| 欧美精品综合在线 | 精品免费国产一区二区三区四区介绍 | 欧美日韩亚洲一区 | 欧美精品一区二区在线观看 | 亚洲一区二区三区四区五区午夜 | 在线视频一区二区三区 | 亚洲一区二区久久久 | 国产欧美一区二区三区久久人妖 | 免费久久视频 | 午夜综合 | 一区二区三区视频在线观看 | 成人小视频在线免费观看 | 国产1区| 国产精品久久久乱弄 | 一级黄色生活视频 | 四虎在线视频 | 中文字幕乱码视频32 | 久久午夜视频 | 免费观看的av | 亚洲欧美日韩中文字幕一区二区三区 | 国产999精品久久久久久 |