MongoDB中的索引是什么意思?

3

说实话,仅在键入问题标题后,我就在维基百科上查看了有关数据库索引的信息。 现在我大致了解了索引的一般概念。 但是,我仍然对MongoDB索引有一些疑问。

MongoDB中的索引是什么? 如果我对集合进行索引,它会做什么? 我能用MongoDB索引做什么? 我能用它来搜索特定数据吗?

可以有人通过以下一组在某个MongoDB集合中的文档来解释吗?

{ "_id":"das23j..", "x": "1", "y":[ {"RAM":"2 GB"}, {"Processor":"Intel i7"}, {"Graphics Card": "NVIDIA.."}]}

Thanks!!!


3
MongoDB的索引是B树,维基百科有更详细的解释:http://en.wikipedia.org/wiki/B-tree - TTT
而这部分几乎与像Oracle或MySQL这样的关系型数据库中的索引相同。 - Thilo
1个回答

6
索引可以加速搜索,但会增加存储空间。可以将索引看作属性(或列)数据的另一份副本,但是按顺序排列。如果你有一个有序集合,就可以执行类似于二分查找的操作,这比顺序查找快得多(如果数据没有被排序,则需要进行顺序查找)。使用索引找到所需数据后,可以引用相应的记录。
权衡之处在于,需要额外的空间来存储该列数据的“有序”副本,并且存在轻微的速度折衷,因为必须按正确顺序插入新记录,以便快速搜索算法能够工作。
有关mongodb索引的详细信息,请参见http://www.mongodb.org/display/DOCS/Indexes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接