亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5048 | 回復: 1
打印 上一主題 下一主題

10gen工程師講數(shù)據(jù)庫索引實現(xiàn) [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-02-21 21:09 |只看該作者 |倒序瀏覽
10gen工程師講數(shù)據(jù)庫索引實現(xiàn)










MongoDB盡管在數(shù)據(jù)存儲上與傳統(tǒng)關系數(shù)據(jù)庫很不一樣,但是在索引構建上卻幾乎是與傳統(tǒng)關系型數(shù)據(jù)庫一致。主要是使用了B-tree作為索引結構。

Indexes in MongoDB are conceptually similar to those in RDBMSes like MySQL. You will want an index in MongoDB in the same sort of situations where you would have wanted an index in MySQL.

下面一篇文章是10gen工程師 Kyle Banker 所寫,他拿食譜舉例,講解了在數(shù)據(jù)庫系統(tǒng)中索引的基本實現(xiàn),非常形像。本站簡單翻譯如下,更詳細的內(nèi)容,請直接查看原文:

原文鏈接:The Joy Of Indexing

1.唯一索引
想像你要在一本沒有目錄的食譜上查找某一道菜的做法,那么你唯一的辦法可能就是從頭到尾把這本幾百頁的書看一遍,直到找到你想找的菜。

而一個快速的方法就是給菜譜加上一個目錄,目錄中有每一道菜的名字與相應頁數(shù)的對應,并且菜名是按字母順序排列的如下,這樣你就可以按首字母快速地找到你要找的菜譜的頁數(shù)了。(這個基本上對應的是唯一索引的形式)

舉例:

水餃
- 45
水煮肉片
- 4,011
水煮魚
- 943

2.非唯一索引
但是如果我今天買了條魚,想查一下所有跟魚相關的做法,那么用上面的索引就沒辦法了。于是出現(xiàn)下面一種索引構建方法,即將所有菜的材料構建目錄,這時候一個材料對應多道菜。

舉例:


- 3, 20, 42, 88, 103, 1,215…
豬肉
- 2, 47, 88, 89, 90, 275…
白菜
- 7, 9, 80, 81, 82, 83, 84…

3.聯(lián)合索引
下面還有另一種需求,如果我知道材料里有魚,而我又知道這道菜的名字,就不用查找到材料后去翻看后面幾個具體頁的菜再來選擇了。滿足這種需求的是聯(lián)合索引:


- 水煮魚
—- 1,215
- 紅燒帶魚
—- 88
- 酸菜魚
—- 103
豬肉
- 紅燒肉
—- 875
- 小炒肉
—- 89
- 回鍋肉
—- 47
白菜
- 白菜湯
—- 2,000
- 素炒白菜
—- 2,133
- 白菜燉豆腐
—- 1,050

論壇徽章:
0
2 [報告]
發(fā)表于 2012-02-24 17:40 |只看該作者
謝謝分享
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP