说实话,在仅输入问题标题后,我看了一下Wiki中的数据库索引。 现在我对一般的索引有所了解。但是,我仍然对MongoDB索引有一些疑问。
MongoDB中的索引是什么?它究竟会做什么,如果我索引一个集合? 我可以用MongoDB中的索引编写什么? 我能用它来搜索特定数据吗?
任何人都可以使用MongoDB中的Collection中的以下文档集来解释它吗?
{ "_id":"das23j..", "x": "1", "y":[ {"RAM":"2 GB"}, {"Processor":"Intel i7"}, {"Graphics Card": "NVIDIA.."}]}
感谢!!!
答案 0 :(得分:6)
索引会加快搜索速度,但会占用存储空间。将索引视为属性(或列)数据的附加副本,但按顺序排列。如果您有一个有序的集合,您可以执行类似二进制搜索的操作,这比顺序搜索要快得多(如果没有订购数据,您需要这样做)。一旦使用索引找到所需数据,就可以参考相应的记录。
权衡是您需要额外的空间来存储该列数据的“有序”副本,并且需要进行轻微的速度权衡,因为必须以正确的顺序插入新记录,这是快速搜索算法的必要条件。工作
有关mongodb索引的详细信息,请参阅http://www.mongodb.org/display/DOCS/Indexes。