代码之家  ›  专栏  ›  技术社区  ›  user405398

MongoDB中的索引是什么意思?

  •  3
  • user405398  · 技术社区  · 15 年前

    说真的,在只输入了问题标题之后,我看了一下wiki中的db索引。 现在我对索引有了一些了解。但是,我仍然对MongoDB索引有一些疑问。

    MongoDB中的索引是什么?如果我索引一个集合,它究竟会做什么? 我可以用MongoDB中的索引做什么? 我能用它搜索特定的数据吗?

    在一些MongoDB中,有人能用下面的一组文档来解释它吗?

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

    谢谢!!!!

    1 回复  |  直到 15 年前
        1
  •  6
  •   Roadmaster    15 年前

    索引以牺牲存储空间为代价,加快了搜索速度。将索引视为属性(或列)数据的附加副本,但要按顺序进行。如果您有一个有序的集合,那么您可以执行类似二进制搜索之类的操作,这比顺序搜索(如果数据没有有序的话,您需要这样做)快得多。一旦使用索引找到所需的数据,就可以引用相应的记录。

    权衡的是,您需要额外的空间来存储该列数据的“有序”副本,而且由于必须以正确的顺序插入新的记录,因此需要稍微加快权衡的速度,这是快速搜索算法工作的必要条件。

    有关MongoDB索引的详细信息,请参阅 http://www.mongodb.org/display/DOCS/Indexes .