04-索引(上)

常見索引模型

  • 哈希表:
    數(shù)組+鏈表丙唧,hash算法取得index,若沖突則鏈表。
    適用于:只有等值查詢的場景

  • 有序數(shù)組:
    數(shù)組僵驰,查詢方便,修改記錄成本較高
    適用于:靜態(tài)存儲引擎

  • 搜索樹
    平衡N叉樹

InnoDB索引模型

B+樹唁毒,減少單次查詢的磁盤訪問數(shù)蒜茴。
設(shè)有如下建表語句

create table T(
  id int primary key,
  k int not null,
  name varchar(16),
  index (k)
)engine=InnoDB;

表中R1~R5的(ID,k)值分別為(100,1)、(200,2)浆西、(300,3)粉私、(500,5)和(600,6),兩棵樹的示例示意
圖如下近零。

InnoDB的索引組織結(jié)構(gòu)

主鍵索引(聚簇索引):葉節(jié)點(diǎn)為整行數(shù)據(jù)
非主鍵索引(二級索引):葉節(jié)點(diǎn)為主鍵值

基于兩者查詢的區(qū)別:

  • 基于主鍵:只搜索ID的B+樹诺核。
  • 基于非主鍵索引:先搜索對應(yīng)索引樹獲得主鍵抄肖,再根據(jù)結(jié)果搜索主鍵索引樹。

索引維護(hù)

維護(hù)有序性窖杀,可能導(dǎo)致以下操作:
頁分裂:影響性能漓摩,影響空間利用率
頁合并:對利用率低的數(shù)據(jù)也頁進(jìn)行合并

自增主鍵:性能、存儲空間最優(yōu)

  • 性能:保證插入新數(shù)據(jù)時都是追加操作陈瘦,不涉及其他記錄的移動幌甘,也不涉及葉節(jié)點(diǎn)分裂
  • 存儲空間:主鍵長度小,普通索引占用空間就小

業(yè)務(wù)邏輯字段主鍵:(KV場景)

  • 只有一個索引
  • 該索引必須是唯一索引

重建索引:

非主鍵索引:

alter table T drop index k;
alter table T add index(k);

主鍵索引:

alter table T engine=InnoDB
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末痊项,一起剝皮案震驚了整個濱河市锅风,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鞍泉,老刑警劉巖皱埠,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異咖驮,居然都是意外死亡边器,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門托修,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忘巧,“玉大人,你說我怎么就攤上這事睦刃⊙庾欤” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵涩拙,是天一觀的道長际长。 經(jīng)常有香客問我,道長兴泥,這世上最難降的妖魔是什么工育? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮搓彻,結(jié)果婚禮上如绸,老公的妹妹穿的比我還像新娘。我一直安慰自己旭贬,他們只是感情好竭沫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著骑篙,像睡著了一般蜕提。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上靶端,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天谎势,我揣著相機(jī)與錄音凛膏,去河邊找鬼。 笑死脏榆,一個胖子當(dāng)著我的面吹牛猖毫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播须喂,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吁断,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坞生?” 一聲冷哼從身側(cè)響起仔役,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎是己,沒想到半個月后又兵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卒废,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年沛厨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摔认。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡逆皮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出参袱,到底是詐尸還是另有隱情页屠,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布蓖柔,位于F島的核電站,受9級特大地震影響风纠,放射性物質(zhì)發(fā)生泄漏况鸣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一竹观、第九天 我趴在偏房一處隱蔽的房頂上張望镐捧。 院中可真熱鬧,春花似錦臭增、人聲如沸懂酱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽列牺。三九已至,卻和暖如春拗窃,著一層夾襖步出監(jiān)牢的瞬間瞎领,已是汗流浹背泌辫。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留九默,地道東北人震放。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像驼修,于是被迫代替她去往敵國和親殿遂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一句話簡單來說乙各,索引的出現(xiàn)其實就是為了提高數(shù)據(jù)查詢的效率墨礁,就像書的目錄一樣。對于數(shù)據(jù)庫的表而言觅丰,索引其實就是它的“...
    巴巴11閱讀 47評論 0 0
  • InnoDB數(shù)據(jù)頁的7個組成部分饵溅,知道了各個數(shù)據(jù)頁可以組成一個雙向鏈表,而每個數(shù)據(jù)頁中的記錄會按照主鍵值從小到大的...
    括兒之家閱讀 395評論 0 0
  • 一.索引的常見模型 索引的出現(xiàn)是為了提高查詢效率妇萄,但是實現(xiàn)索引的方式卻有很多種蜕企,所以這里也就引入了索引模型的概念。...
    名字是亂打的閱讀 266評論 0 2
  • 提到數(shù)據(jù)庫索引冠句,我想你并不陌生轻掩,在日常工作中會經(jīng)常接觸到。比如某一個 SQL 查詢比較慢懦底,分析完原因之后唇牧,你可能就...
    tracy_668閱讀 332評論 0 3
  • 數(shù)據(jù)庫索引,在日常工作中會經(jīng)常接觸到聚唐。比如某一個 SQL 查詢比較慢丐重,分析完原因之后,你可能就會說“給某個字段加個...
    舍是境界閱讀 117評論 0 1