将集合转换为固定大小
要将非固定固定大小集合转换为固定固定大小集合,请使用 convertToCapped
数据库命令。
convertToCapped
命令会在操作期间保持数据库独占锁。锁定同一数据库的其他操作将被阻塞,直到 convertToCapped
操作完成。
关于此任务
通常情况下,TTL(存活时间)索引比固定大小集合提供更好的性能和更大的灵活性。TTL 索引会过期,并根据日期类型字段的值和索引的 TTL 值从正常集合中删除数据。
固定大小集合对写入操作进行序列化,因此其并发插入、更新和删除性能不如非固定大小集合。在创建固定大小集合之前,请考虑是否可以改用 TTL 索引。
开始之前
创建一个名为 log2
的非固定大小集合:
db.createCollection("log2")
步骤
1
将集合转换为固定大小集合
要将 log2
集合转换为固定大小集合,请运行 convertToCapped
命令:
db.runCommand( { convertToCapped: "log2", size: 100000 } )
log2
集合的最大大小为 100,000 字节。
2
确认集合已达到上限
要确认 log2
集合现已达到上限,请使用 isCapped()
方法:
db.log2.isCapped()
true