倒排索引與數(shù)據(jù)庫索引

數(shù)據(jù)庫索引

mysql索引以B+樹作為存儲結構契邀,B+樹的主要特點是,非葉子節(jié)點不存儲數(shù)據(jù),數(shù)據(jù)只存儲在葉子節(jié)點上醒叁,并且所有葉子節(jié)點組成有序鏈表

主鍵索引(聚簇索引)

假設我們的表結構如下

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
  `name` varchar(20) DEFAULT NULL COMMENT '名稱',
  `bank_no` varchar(20) DEFAULT NULL COMMENT '銀行卡號',
  `hobby` varchar(20) DEFAULT NULL COMMENT '興趣愛好',
  PRIMARY KEY (`id`),
  UNIQUE KEY `user_bank_no` (`bank_no`,`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8

數(shù)據(jù)庫主鍵索引對應的文檔存儲的表內(nèi)容可表示為:

DocumentId name bank_no hobby
1 魯智深 6201 籃球、唱歌
200 吳用 5100 籃球泊业、旅游
3000 花榮 1234 臺球把沼、旅游
5000 柴進 2245 唱歌、游泳
5001 武松 5678 籃球吁伺、游泳
5200 楊志 1345 游泳饮睬、臺球
8000 宋江 9987 唱歌
10000 盧俊義 3347 足球、旅游

主鍵索引的存儲結構如下


圖:主鍵索引存儲結構

非主鍵索引

非主鍵索引存儲結構



非主鍵索引的葉子節(jié)點只存儲索引字段及主鍵篮奄,如果需要索引字段之外的信息捆愁,則需要根據(jù)主鍵再回表查詢割去。
比如我們按照銀行卡號查詢用戶名、興趣愛好等字段昼丑,則會根據(jù)索引過濾后再回表查詢完整信息呻逆,被稱為是索引下推。

倒排索引

數(shù)據(jù)庫索引是一種正排索引菩帝,上面的例子中咖城,如果查詢興趣愛好為“游泳”的用戶信息,則會觸發(fā)全表掃描呼奢。這種情況下創(chuàng)建全文索引可很大程度的提高查詢效率宜雀,而全文索引(full inverted index )就一種倒排索引(inverted file index )的實現(xiàn)。

如果是倒排索引握础,則文檔存儲的表內(nèi)容可表示為:

Number text Documents
1 籃球 1州袒,200,5001
2 唱歌 1, 5000, 8000
3 旅游 200, 3000, 10000
4 臺球 3000, 5200
5 游泳 5000, 5200
6 足球 10000

全文索引不僅可以存儲文檔的ID弓候,還可以存儲單詞在text的位置信息(position)

Number text Documents[(DocumentId: position)]
1 籃球 (1: 1)郎哭,(200: 1), (5001: 1)
2 唱歌 (1: 2), (5000: 1), (8000: 1)
3 旅游 (200: 2), (3000: 2), (10000: 2)
4 臺球 (3000: 1), (5200: 2)
5 游泳 (5000: 2), (5200: 1)
6 足球 (10000: 1)

最后,倒排索引作為一種索引結構菇存,可以更好的定位數(shù)據(jù)夸研,并能擴充一些搜索特性,但是也會占用更多的磁盤空間依鸥。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亥至,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贱迟,更是在濱河造成了極大的恐慌姐扮,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衣吠,死亡現(xiàn)場離奇詭異茶敏,居然都是意外死亡,警方通過查閱死者的電腦和手機缚俏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門惊搏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人忧换,你說我怎么就攤上這事恬惯。” “怎么了亚茬?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵酪耳,是天一觀的道長。 經(jīng)常有香客問我刹缝,道長碗暗,這世上最難降的妖魔是什么颈将? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮讹堤,結果婚禮上吆鹤,老公的妹妹穿的比我還像新娘。我一直安慰自己洲守,他們只是感情好疑务,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梗醇,像睡著了一般知允。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叙谨,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天温鸽,我揣著相機與錄音,去河邊找鬼手负。 笑死涤垫,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的竟终。 我是一名探鬼主播蝠猬,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼统捶!你這毒婦竟也來了榆芦?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤喘鸟,失蹤者是張志新(化名)和其女友劉穎匆绣,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體什黑,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡崎淳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了兑凿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凯力。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖礼华,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拗秘,我是刑警寧澤圣絮,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站雕旨,受9級特大地震影響扮匠,放射性物質(zhì)發(fā)生泄漏捧请。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一棒搜、第九天 我趴在偏房一處隱蔽的房頂上張望疹蛉。 院中可真熱鬧,春花似錦力麸、人聲如沸可款。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闺鲸。三九已至,卻和暖如春埃叭,著一層夾襖步出監(jiān)牢的瞬間摸恍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工赤屋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留立镶,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓类早,卻偏偏與公主長得像媚媒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子莺奔,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

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