0
我有一个用例,其中集合中的一组记录需要在指定的时间间隔后被删除。 例如:超过10小时的记录每10小时删除一次。在MongoDB中对一个集合中的记录进行分区
我们尝试了基于ID的删除,但发现它很慢。
有分区集合中的记录和删除分区的和需要蒙戈时
我有一个用例,其中集合中的一组记录需要在指定的时间间隔后被删除。 例如:超过10小时的记录每10小时删除一次。在MongoDB中对一个集合中的记录进行分区
我们尝试了基于ID的删除,但发现它很慢。
有分区集合中的记录和删除分区的和需要蒙戈时
的MongoDB目前不支持分区的方式,有一个JIRA票添加为特征(SERVER-2097) 。
一个解决方案是利用多个基于时间的集合,以与分区类似的方式循环集合。通常我们会这样做,当你通常只查询这些基于时间的集合中的一个或几个时。如果您经常需要阅读多个集合,则可以添加一些包装代码来简化该集合。
还有TTL Indexes,它利用mongod服务器中的后台线程为您处理删除。
由_id造成的删除可能由于多种原因而变得缓慢,并且可能需要在原始问题之外进行更多调查。