9、MongoDB 游标、命令与索引全解析

MongoDB 游标、命令与索引全解析

1. 不朽游标(Immortal Cursors)

游标有两个方面:面向客户端的游标和客户端游标所代表的数据库游标。之前我们主要讨论的是客户端游标,现在来看看服务器端的情况。

在服务器端,游标会占用内存和资源。当游标耗尽结果集,或者客户端发送消息让其关闭时,数据库会释放其占用的资源。为了让数据库能将这些资源用于其他操作,我们需要确保游标能及时被释放。

游标关闭的情况主要有以下几种:
- 当游标遍历完所有匹配结果后,会自动清理自身。
- 当客户端的游标超出作用域时,驱动程序会向数据库发送特殊消息,通知数据库关闭该游标。
- 即使客户端没有遍历完所有结果,且游标仍在作用域内,若 10 分钟内没有活动,数据库游标会自动关闭。这样可以避免因客户端崩溃或出现故障而导致大量游标一直打开。

不过,有时我们可能需要游标长时间保持打开状态。很多驱动程序提供了 immortal 函数或类似机制,用于告诉数据库不要让游标超时。但如果关闭了游标超时功能,必须遍历完所有结果或手动关闭游标,否则它会一直占用数据库资源,直到服务器重启。

2. 数据库命令(Database Commands)

数据库命令是一种特殊的查询类型,涵盖了除创建、更新、删除和查找文档之外的所有操作,包括服务器管理任务(如关闭服务器、克隆数据库)、统计集合中的文档数量以及执行聚合操作等。

命令在数据操作、管理和监控方面非常有用。例如,删除集合可以使用 drop 数据库命令:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值