出于性能原因,清理存储桶是否重要?

时间:2019-04-07 09:30:44

标签: couchbase

我的应用程序不断将文档插入存储桶中。 假设数据一旦达到分配给铲斗的最大ram限制,就会旋转,因此它永远不会删除它们。

但是完整存储桶对数据检索速度有什么影响? 一旦不再需要文档以保持性能,是否需要确保将其删除? Ephermal和Couchbase存储桶之间在这方面有区别吗?

2 个答案:

答案 0 :(得分:0)

  

假设数据一旦达到分配给铲斗的最大ram极限,便会旋转

这是一个假设。您应该先进行测试,然后再继续。如果数据库一旦达到其极限,仅停止接受新文档,我一点也不感到惊讶。

答案 1 :(得分:0)

这是一个相当广泛的问题,我建议您阅读Couchbase Server文档。这是一个快速入门的TL; DR:

Couchbase Server中有三种buckets类型,enter image description here充满时的行为会有所不同。

Couchbase Bucket

Couchbase存储桶将文档写入磁盘,并将其缓存在内存中。它有两种不同的弹出模式; 仅值完整。 “仅值”模式仅从内存中删除文档的值,而“满”模式可以从内存中删除文档的值和元数据。这意味着配置了仅值弹出的Couchbase存储桶可能会变满,并停止接受写入,而完全弹出不会发生这种情况。如果文档不在内存中,将从较慢的磁盘中获取它。

星历斗

临时表存储区仅将文档存储在内存中,可以看作是Memcached存储区的替代品。桶满时的行为方式可以控制,有两种模式。 不弹出-不弹出数据,而是拒绝新的写操作。在这种情况下,由应用程序删除数据。 NRU弹出数据是根据最近未使用的算法删除的。在这两种情况下,从Couchbase Server的角度来看,由于存储桶已满,性能不会下降。从应用程序的角度来看,由于必须从其他来源获取数据,因此可能会降低性能。

Memcached Bucket

在这种情况下,当存储桶已满时,内存缓存的存储桶的行为就像具有NRU弹出功能的临时存储桶。临时存储桶相对于内存缓存存储桶有许多改进,应该使用它。