面试题答案
一键面试db.stats()
- 返回信息含义:
db
:数据库名称。collections
:数据库中的集合数量。objects
:数据库中的文档(记录)数量。avgObjSize
:平均每个文档的大小(以字节为单位)。dataSize
:数据库中所有文档数据的总大小(以字节为单位)。storageSize
:数据库占用的存储空间大小(以字节为单位),这可能大于dataSize
,因为存在分配但未使用的空间等情况。numExtents
:数据库使用的区(extents)数量,区是MongoDB分配空间的逻辑单位。indexes
:数据库中的索引数量。indexSize
:所有索引占用的总大小(以字节为单位)。fileSize
:数据库文件的大小(以字节为单位)。
- 返回信息含义:
serverStatus()
- 返回信息含义:
- 基本信息:
host
:服务器主机名。version
:MongoDB版本号。process
:进程名称,例如mongod
。
- 内存相关:
mem
:包含内存使用情况,如resident
(常驻内存大小,以MB为单位)、virtual
(虚拟内存大小,以MB为单位)、supported
(系统是否支持内存映射文件,布尔值)等。
- 连接相关:
connections
:当前服务器的连接信息,current
表示当前活动连接数,available
表示可用连接数(在启用连接池等机制时有用)。
- 操作相关:
opcounters
:各种操作的计数器,如insert
、query
、update
、delete
等操作的执行次数。
- 复制集相关(如果是复制集成员):
repl
:包含复制集角色(如primary
、secondary
等)、setName
(复制集名称)等信息。
- 存储引擎相关:
storageEngine
:存储引擎的名称(如wiredTiger
)以及相关统计信息,不同存储引擎的具体信息不同,例如wiredTiger
会有cache
相关的使用统计等。
- 基本信息:
- 返回信息含义:
db.getReplicationInfo()
- 返回信息含义:
- 主节点相关:
logSizeMB
:主节点上oplog(操作日志)的大小(以MB为单位)。usedMB
:oplog已使用的空间大小(以MB为单位)。timeDiff
:从当前时间到oplog中最旧操作的时间差(以秒为单位),反映了从节点落后主节点的大致时间(在正常复制情况下)。
- 从节点相关(如果是从节点调用此命令):
- 会有相关从节点同步状态的信息,如与主节点的延迟等。
- 主节点相关:
- 返回信息含义:
db.getShardingStatus()
- 返回信息含义:
- 集群信息:
sharding version
:分片版本号。clusterIdentity
:集群标识。
- 数据库分片信息:
- 每个数据库的分片配置,包括哪些集合被分片,以及片键(shard key)等信息。对于每个分片的集合,会显示其所在的片(shard)以及片键范围等。
- 集群信息:
- 返回信息含义: