1.3.13. /db/_compact
¶
- POST /{db}/_compact¶
请求对指定数据库进行压缩。压缩通过执行以下操作来压缩磁盘数据库文件
写入一个新的、优化的数据库文件版本,在写入过程中从新版本中删除任何未使用的部分。由于为此目的临时创建了一个新文件,因此您可能需要指定数据库当前存储空间的两倍才能完成压缩例程。
从数据库中删除任何非叶级修订版本的文档主体。
删除超过
_revs_limit
数据库参数指定的限制的旧修订历史记录。
压缩只能在单个数据库上请求;您不能压缩 CouchDB 实例的所有数据库。压缩过程作为后台进程运行。
您可以通过获取数据库元信息来确定压缩过程是否正在对数据库进行操作,返回的数据库结构的
compact_running
值将设置为 true。请参阅GET /{db}
.您还可以获取正在运行的进程列表,以确定压缩是否正在运行。请参阅 /_active_tasks.
- 参数:
db – 数据库名称
- 请求头:
Accept –
application/json
text/plain
Content-Type – application/json
- 响应头:
application/json
text/plain; charset=utf-8
- 响应 JSON 对象:
ok (布尔值) – 操作状态
- 状态码:
202 已接受 – 压缩请求已接受
400 错误请求 – 无效的数据库名称
401 未授权 – 需要 CouchDB 服务器管理员权限
415 不支持的媒体类型 – 错误的 Content-Type 值
请求:
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 – 设计文档名称
- 请求头:
Accept –
application/json
text/plain
Content-Type – application/json
- 响应头:
application/json
text/plain; charset=utf-8
- 响应 JSON 对象:
ok (布尔值) – 操作状态
- 状态码:
202 已接受 – 压缩请求已接受
400 错误请求 – 无效的数据库名称
401 未授权 – 需要 CouchDB 服务器管理员权限
404 未找到 – 未找到设计文档
415 不支持的媒体类型 – 错误的 Content-Type 值
请求:
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 – 数据库名称
- 请求头:
Accept –
application/json
text/plain
Content-Type – application/json
- 响应头:
application/json
text/plain; charset=utf-8
- 响应 JSON 对象:
instance_start_time (字符串) – 始终为
"0"
。 (出于遗留原因返回。)ok (布尔值) – 操作状态
- 状态码:
201 已创建 – 提交成功完成
400 错误请求 – 无效的数据库名称
415 不支持的媒体类型 – 错误的 Content-Type 值
请求:
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 – 数据库名称
- 请求头:
Accept –
application/json
text/plain
Content-Type – application/json
- 响应头:
application/json
text/plain; charset=utf-8
- 响应 JSON 对象:
ok (布尔值) – 操作状态
- 状态码:
202 已接受 – 压缩请求已接受
400 错误请求 – 无效的数据库名称
401 未授权 – 需要 CouchDB 服务器管理员权限
415 不支持的媒体类型 – 错误的 Content-Type 值
请求:
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 }