首页 > 数据库 >mongodb创建索引和删除索引和背景索引background

mongodb创建索引和删除索引和背景索引background

时间:2024-05-01 09:56:04浏览次数:28  
标签:mongodb db collection 索引 background 创建 createIndex

mongodb创建索引和删除索引和背景索引background

MongoDB的背景索引允许在后台创建和重建索引,而不会对数据库的正常操作产生影响。背景索引的创建过程是非阻塞的,可以在业务运行时创建或重建索引,而不会中断其他操作。这使得我们可以在生产环境中安全地创建和维护索引,而不必担心对数据库性能造成负面影响。

注意:
## collection 代表的是表名称,比如:my_url
db.collection.createIndex({ code:1 }, { background: true })
##创建索引
db.getCollection('my_url').createIndex({ code:1 }, { background: true })
##创建索引(简写)
db.my_url.createIndex({code:1},{background:true})
##删除索引
db.my_url.dropIndex({code:1},{background:true})


db.collection.createIndex({ field: 1 }, { background: true })
在上述示例中,我们通过createIndex方法创建了一个名为field的索引,并指定了background:true选项。这将会在后台异步地创建索引,而不会阻塞其他操作。在索引创建过程中,我们可以继续对数据库进行正常的增删改查操作,而不会受到索引创建的影响。

在MongoDB中,加索引是为了提高查询性能。你可以使用createIndex()函数来为一个或多个字段添加索引。
单字段索引:
/ 对集合中的 'fieldname' 字段添加升序索引
db.collection.createIndex({ fieldname: 1 });

// 对集合中的 'fieldname' 字段添加降序索引
db.collection.createIndex({ fieldname: -1 });

复合索引:
// 对集合中的 'fieldname1' 和 'fieldname2' 字段添加复合索引
db.collection.createIndex({ fieldname1: 1, fieldname2: -1 });

唯一索引:
// 对集合中的 'fieldname' 字段添加唯一索引
db.collection.createIndex({ fieldname: 1 }, { unique: true });

使用TTL(Time-To-Live)索引:
// 在集合中对 'fieldname' 字段添加索引,数据在存储时间超过3600秒后自动删除
db.collection.createIndex({ "fieldname": 1 }, { expireAfterSeconds: 3600 });

背景索引
db.collection.createIndex({ field: 1 }, { background: true })

请确保在实际应用中,索引策略需要根据你的数据模式和查询模式来制定。不必要的索引可能会降低写操作性能,因此在创建索引时需要权衡利弊。

标签:mongodb,db,collection,索引,background,创建,createIndex
From: https://www.cnblogs.com/oktokeep/p/18169037

相关文章

  • Prometheus监控MongoDB数据库
    监控环境:Prometheus数据库:MongoDB3.4.6集群,3个节点监控工具:mongodb_exporter 1、创建Mongodb监控可读账号 mongodbadmin库中执行useadmindb.createUser({user:"prometheus",pwd:"prometheus",roles:[{role:"read",db:&qu......
  • openGauss 创建和管理索引
    创建和管理索引背景信息索引可以提高数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。所以是否要为表增加索引,索引建立在哪些字段上,是创建索引前必须要考虑的问题。需要分析应用程序的业务处理、数据使用、经常被用作查询的条件或者被要求排序的字段来确定是否建......
  • openGauss 为MOT创建索引
    为MOT创建索引支持标准的openGauss创建和删除索引语句。例如:createindextext_index1ontest(x);创建一个用于TPC-C的ORDER表,并创建索引:createFOREIGNtablebmsql_oorder(o_w_idintegernotnull,o_d_idintegernotnull,o_id......
  • 力扣-852. 山脉数组的峰顶索引
    1.题目题目地址(852.山脉数组的峰顶索引-力扣(LeetCode))https://leetcode.cn/problems/peak-index-in-a-mountain-array/?envType=study-plan-v2&envId=primers-list题目描述符合下列属性的数组arr称为山脉数组:arr.length>=3存在i(0<i <arr.length-1)使得: ......
  • SQL Server实战三:数据库表完整性约束及索引、视图的创建、编辑与删除
      本文介绍基于MicrosoftSQLServer软件,实现数据库表完整性约束、索引与视图的创建、编辑与删除等操作的方法。目录1交互式为数据库表S创建PRIMARYKEY约束2交互式创建数据库表TEST_SC,创建PRIMARYKEY约束3T-SQL创建数据库表T的PRIMARYKEY约束4T-SQL创建数据库表TEST_C,以......
  • openGauss MOT索引
    MOT索引MOT索引基于最先进的Masstree[对比:磁盘与MOT]的免锁索引,用于多核系统的快速和可扩展的键值(KV)存储,通过B+树的Trie实现。在多核服务器和高并发工作负载上,性能优异。它使用各种先进的技术,如乐观锁方法、缓存感知和内存预取。在比较了各种最先进的解决方案(如[对比:磁盘与MOT],[......
  • MySQL索引优化二
    学习来源:图灵课堂https://vip.tulingxueyuan.cn 分页优化一般来说,我们的后台管理系统都是有翻页功能的,并且有时候还要加上一些筛选过滤条件;如果对查询没有经过特别的优化,那么就会发现翻页越往后就越慢,这是为什么呢?因为如果单独是使用limit,例如limit90000,5;这个并不是从第......
  • mongodb使用备份后的oplog做时间点恢复
    环境:OS:Centos7DB:mongodb5.01.数据库备份/opt/mongodb-database-tools/bin/mongodump-h192.168.56.101:29001-utest-ptest123--authenticationDatabaseadmin--db=db_pushmsg-o/tmp/bak记录下备份的完成时间:2024-04-28T14:39:24.628+0800donedumpingdb_pus......
  • mongodb异机做时间点恢复(基于时间范围查询导出oplog)
    环境:OS:Centos7DB:mongodb5原环境:1主2从,异机恢复的环境:单机(oplog.rs是否开启都可以,开启可以参考:https://www.cnblogs.com/hxlasky/p/17979922) 1.模拟写入数据连接主库模拟写入数据/usr/local/services/mongodb/bin/mongo192.168.56.101:29001useadmindb.auth("......
  • 索引的知识要点与操作
    要点对单个字段做索引,也可以对多个字段做索引(联合索引),联合索引只有最后一个字段支持"<"">"操作。虽然索引可以建很多个,但是每个一个索引都会增加存储和插入时候的耗时。SQL执行只会使用到一个索引。(这解释了为什么需要联合索引,而不只是对多个字段创建索引)如果SELECT的结果......