当前位置: 首页 > 面试题库 >

Pymongo / MongoDB:创建索引还是确保索引?

云开诚
2023-03-14
问题内容

我不了解pymongocreate_indexensure_indexpymongo之间的区别。在MongoDB索引页面上,它说

您可以通过调用 ensureIndex()

但是在pymongo中,有两个不同的命令create_indexensure_index,创建索引的文档包括:

与create_index()尝试无条件创建索引的方法不同,sure_index()利用驱动程序中的某些缓存,以便仅尝试创建可能不存在的索引。当PyMongo创建(或确保)索引时,将在ttl秒内“记住”该索引。在此期限内重复调用sure_index()将是轻量级的-
它们将不会尝试实际创建索引。

我是否理解ensure_index会创建一个永久索引是正确的,还是需要为此使用create_index


问题答案:

请记住,在Mongo
3.x中,ensureIndex已弃用,不建议使用。

从3.0.0版开始不推荐使用:db.collection.ensureIndex()现在是db.collection.createIndex()的别名。

pymongo中也是如此:

已弃用-确保此集合上存在索引。

这意味着您应该始终使用create_index



 类似资料:
  • 源码 .. index:: 创建, 索引, 测试

  • CreateIndexes 根据struct中的tag来创建索引 CreateUniques 根据struct中的tag来创建唯一索引

  • 主要内容:createIndex() 方法,dropIndex() 方法,dropIndexes() 方法,getIndexes() 方法索引是特殊的数据结构,存储在一个方便遍历和读取的数据集合中。索引在任何数据库中都非常重要,通过使用索引,可以大大提高查询语句的执行效率。 举个简单的例子,假如您有一个集合,其中包含了数千甚至上万个没有索引的文档,当我们在集合中查找某个文档时,MongoDB 需要扫描整个集合来寻找所需的文档,这种扫描效率极低,特别是在处理大量的数据时,可能需要花费几十秒甚至几分

  • 问题内容: 如何使用Elasticsearch Nest API重新创建以下索引? 这是包含映射的索引的json: 这是我的尝试: 该文档没有提及任何内容? 更新: 找到了使用此帖子 然后添加带有字符串文字json的Analysis。 在哪里可以找到更多类似的例子,这行得通吗? 问题答案: 在旧版本中创建索引 您可以通过两种主要方法来完成此操作,如Nest Create Index文档中所述 :

  • 用于为表创建索引。 索引是一组指针,它指的是MDC或ITC表中的表块中的行,XML存储对象中的XML数据,这些XML数据在逻辑上按一个或多个键的值排序。 索引用于提高查询数据的速度以及有效地对数据进行聚类和分区。 索引可以增强视图操作的性能。具有唯一索引的表可以包含具有唯一键的行。 可以根据表要求创建不同类型的索引。 索引类型 唯一和非唯一索引 群集和非群集索引 单击create index,它将

  • 命令用于在用户指定的列上创建一个索引。 如果您选择索引的列已存在数据,则Cassandra会在“”语句执行后在指定数据列上创建索引。 语法: 创建索引的规则 由于主键已编入索引,因此无法在主键上创建索引。 在Cassandra中,不支持集合索引。 没有对列进行索引,Cassandra无法过滤该列,除非它是主键。 示例: 让我们举个例子来演示如何在列上创建索引。 在这里,我们为表“”中的“”列创建一