MarkLogic的“xdmp:collection-delete”是如何工作的?
我有一个场景,我想要删除的大多数文档都在名为“过期”的集合中。我不想通过运行一个长时间运行的流程来重载我的服务器,这个流程会迭代文件并逐个删除它们,我宁愿使用文档删除来批量处理它们。MarkLogic的“xdmp:collection-delete”是如何工作的?
所以我的问题是如何xdmp:收藏 - 删除工作?
它遍历文档并删除它们吗?
或
它做在SQL类似DROP TABLE和它的 “瞬间”?
我想知道xdmp:collection-delete的后台进程是什么。我想知道是否有人能够绘制出这个函数如何处理文档的删除流程,因为我想更深入地理解这个过程,而不仅仅是概述它的功能。
xdmp:collection-delete()将在一次交易中删除集合中的所有文档。虽然不是即时的,但它应该很快,因为它只需要设置每个文档的删除时间戳。
在百万文件的情况下确实快意味着秒?它会长时间锁定文件吗? (这基本上是我们试图避免的)。 –
xdmp:collection-delete会在所谓的快速模式下执行,但有一些条件需要满足,但即使在快速模式下也必须为正在删除的内容放置锁符合ACID标准。 – grtjn
我实际上是要在LIVE服务器上运行这个,所以我想知道xdmp的后台进程是什么:collection-delete。我想知道是否有人能够绘制出这个函数如何处理文档的删除流程,因为我想更深入地理解这个过程,而不仅仅是概述它的功能。 –
请记住,删除表格与删除文档集合并不是一回事。 – grtjn
您能详细说明一下您准备好了吗?它基本上归结为迭代文档,锁定它们,并删除它们,全部在一个事务中。在某些情况下,它可能需要一些快捷方式,但仍需要完成所有操作,如下所述。 – grtjn
我们希望删除数据库中的数百万个文档,而不会重载服务器,因为其他进程正在运行而且我们的CPU和内存有限,这就是为什么我们已经建立了自己的purger,它可以批量生产,并且可以在小块中进行清洗。我想知道这个函数是否是对我们自定义purger更好的方法。 –