当我阅读CouchDB文档时,我发现视图需要压缩而mango索引不需要压缩,这很奇怪。它们本质上不是一样的吗?它们都需要清除未使用的或旧的条目?这对我来说似乎是一个疏忽。我想我只需要澄清一下它们之间的索引树有什么不同。谢谢你!
ckocjqey1#
事实上,人们可以压缩mango索引,因为在/db/_index端点1创建的每个索引都有一个“ddoc”(设计文档),就像map/reduce视图的设计文档一样。引用/db/_index文档中的话,Mango是一种用于CouchDB数据库的声明式JSON查询语言。Mango Package 了几种索引类型,从现成的Primary Index开始。索引类型为json的Mango索引使用MapReduce Views 1构建。现在查看/db/_compact/design-doc 2端点的文档 *
/db/_index
/db/_compact/design-doc
压缩与指定设计文档关联的视图索引。压缩大型视图可能比压缩实际数据库返回更多的存储空间。因此,如果您知道特定的一组视图索引已受到最近数据库更改的影响,则可以使用此方法来代替完全数据库压缩。**强调是我 *
由于每个“mango索引”都有一个design-doc,因此任何mango索引都可以用/db/_compact/design-doc端点进行压缩。假设在“stack”数据库中有一个ddoc=“foo-json-index-ddoc“的mango索引,
curl -v -X POST -H "Content-Type: application/json" http://localhost:5984/stack/_compact/foo-json-index-ddoc
详细(成功)响应如下所示
< HTTP/1.1 202 Accepted < Cache-Control: must-revalidate < Content-Length: 12 < Content-Type: application/json < Date: Tue, 18 May 2021 14:30:33 GMT < Server: CouchDB/2.3.1 (Erlang OTP/19) < X-Couch-Request-ID: bbf2b7b0c9 < X-CouchDB-Body-Time: 0 < {"ok":true} * Connection #0 to host localhost left intact
为了清楚起见,我没有授权。[1]/db/索引(_I)[2]/db/_compact/设计文档
1条答案
按热度按时间ckocjqey1#
事实上,人们可以压缩mango索引,因为在
/db/_index
端点1创建的每个索引都有一个“ddoc”(设计文档),就像map/reduce视图的设计文档一样。引用/db/_index文档中的话,
Mango是一种用于CouchDB数据库的声明式JSON查询语言。Mango Package 了几种索引类型,从现成的Primary Index开始。索引类型为json的Mango索引使用MapReduce Views 1构建。
现在查看
/db/_compact/design-doc
2端点的文档 *压缩与指定设计文档关联的视图索引。压缩大型视图可能比压缩实际数据库返回更多的存储空间。因此,如果您知道特定的一组视图索引已受到最近数据库更改的影响,则可以使用此方法来代替完全数据库压缩。
**强调是我 *
由于每个“mango索引”都有一个design-doc,因此任何mango索引都可以用
/db/_compact/design-doc
端点进行压缩。假设在“stack”数据库中有一个ddoc=“foo-json-index-ddoc“的mango索引,
详细(成功)响应如下所示
为了清楚起见,我没有授权。
[1]/db/索引(_I)
[2]/db/_compact/设计文档