1.3.13. /db/_compact

POST /{db}/_compact

请求对指定数据库进行压缩。压缩通过执行以下操作来压缩磁盘数据库文件

  • 写入一个新的、优化的数据库文件版本,在写入过程中从新版本中删除任何未使用的部分。由于为此目的临时创建了一个新文件,因此您可能需要指定数据库当前存储空间的两倍才能完成压缩例程。

  • 从数据库中删除任何非叶级修订版本的文档主体。

  • 删除超过 _revs_limit 数据库参数指定的限制的旧修订历史记录。

压缩只能在单个数据库上请求;您不能压缩 CouchDB 实例的所有数据库。压缩过程作为后台进程运行。

您可以通过获取数据库元信息来确定压缩过程是否正在对数据库进行操作,返回的数据库结构的 compact_running 值将设置为 true。请参阅 GET /{db}.

您还可以获取正在运行的进程列表,以确定压缩是否正在运行。请参阅 /_active_tasks.

参数:
  • db – 数据库名称

请求头:
响应头:
  • Content-Type

    • application/json

    • text/plain; charset=utf-8

响应 JSON 对象:
  • ok (布尔值) – 操作状态

状态码:

请求:

POST /db/_compact HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: localhost:5984

响应:

HTTP/1.1 202 Accepted
Cache-Control: must-revalidate
Content-Length: 12
Content-Type: application/json
Date: Mon, 12 Aug 2013 09:27:43 GMT
Server: CouchDB (Erlang/OTP)

{
    "ok": true
}

1.3.14. /db/_compact/design-doc

POST /{db}/_compact/{ddoc}

压缩与指定设计文档关联的视图索引。可能压缩大型视图比压缩实际数据库返回更多存储空间。因此,如果您知道特定视图索引集已受到最近数据库更改的影响,则可以使用此方法代替完整数据库压缩。

参数:
  • db – 数据库名称

  • ddoc – 设计文档名称

请求头:
响应头:
  • Content-Type

    • application/json

    • text/plain; charset=utf-8

响应 JSON 对象:
  • ok (布尔值) – 操作状态

状态码:

请求:

POST /db/_compact/posts HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: localhost:5984

响应:

HTTP/1.1 202 Accepted
Cache-Control: must-revalidate
Content-Length: 12
Content-Type: application/json
Date: Mon, 12 Aug 2013 09:36:44 GMT
Server: CouchDB (Erlang/OTP)

{
    "ok": true
}

注意

视图索引存储在基于设计文档相关函数的哈希值的单独 .couch 文件中,位于主 .couch 数据库文件所在目录的子目录中。

1.3.15. /db/_ensure_full_commit

POST /{db}/_ensure_full_commit

在版本 3.0.0 中更改: 已弃用;端点是无操作的。

在 3.0 之前,这用于提交对数据库的最新更改,以防设置了 delayed_commits=true 选项。该选项现在始终为 false,因此提交从不延迟。但是,此端点保留用于与旧复制器的兼容性。

参数:
  • db – 数据库名称

请求头:
响应头:
  • Content-Type

    • application/json

    • text/plain; charset=utf-8

响应 JSON 对象:
  • instance_start_time (字符串) – 始终为 "0"。 (出于遗留原因返回。)

  • ok (布尔值) – 操作状态

状态码:

请求:

POST /db/_ensure_full_commit HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: localhost:5984

响应:

HTTP/1.1 201 Created
Cache-Control: must-revalidate
Content-Length: 53
Content-Type: application/json
Date: Mon, 12 Aug 2013 10:22:19 GMT
Server: CouchDB (Erlang/OTP)

{
    "instance_start_time": "0",
    "ok": true
}

1.3.16. /db/_view_cleanup

POST /{db}/_view_cleanup

删除 CouchDB 由于设计文档中视图更改而不再需要的视图索引文件。由于视图文件名基于视图函数的哈希值,因此随着时间的推移,旧视图将保留,从而消耗存储空间。此调用清理给定视图的磁盘上的缓存视图输出。

参数:
  • db – 数据库名称

请求头:
响应头:
  • Content-Type

    • application/json

    • text/plain; charset=utf-8

响应 JSON 对象:
  • ok (布尔值) – 操作状态

状态码:

请求:

POST /db/_view_cleanup HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: localhost:5984

响应:

HTTP/1.1 202 Accepted
Cache-Control: must-revalidate
Content-Length: 12
Content-Type: application/json
Date: Mon, 12 Aug 2013 09:27:43 GMT
Server: CouchDB (Erlang/OTP)

{
    "ok": true
}