我有两个具有相似数据的数据库(组织方式不同),我为每个返回相同响应的视图创建了一个视图。我注意到查询的时间响应是不同的,甚至返回相同的响应,一个是3182ms,另一个是大约217ms,查询了5次。 我使用以下方式查询:
curl -x GET ...db1/_design/query1/view/q1?group=true and
curl -x GET ...db2/_design/query1/view/q1?group=true.
我使用curl -x GET ...db1/_design/query1/_info.
检查了设计文档的数据大小。第一个的设计数据大小是146073878个咬,第二个是3739596个咬。
我认为它们应该具有相同的大小,因为它们返回相同的视图,并且我没有使用任何过滤器,两个视图相同。
有人可以解释为什么不同数据库创建的相同视图有不同的大小?
我的数据是使用两个不同的根组织的,但相同的数据只更改根:
根目录中的客户数据:
{
"c_customer_sk": 65836,
"c_first_name": "Frank",
"c_last_name": "White",
"store_sales": [
{
"ss_sales_price": 20.24,
"ss_ext_sales_price": 1012,
"ss_coupon_amt": 0,
"date": [
{
"d_month_seq": 1187,
"d_year": 1998
}
],
"item": [
{
"i_item_sk": 10454,
"i_item_id": "AAAAAAAAGNICAAAA",
"i_item_desc": "Results highlight as patterns; so right years show. Sometimes suitable lips move with the critics. English, old mothers ought to lift now perhaps future managers. Active, single ch",
"i_current_price": 2.88,
"i_class": "romance",
"i_category_id": 9,
"i_category": "Books"
}
]
},
{
"ss_sales_price": 225,
"ss_ext_sales_price": 1023,
"ss_coupon_amt": 0,...
在根目录中查看客户的功能:
function(doc)
{
for each (store_sales in doc.store_sales) {
var s=store_sales.ss_ext_sales_price;
if(s==null){s=0}
for each (item in store_sales.item){
var item_id=item.i_item_id;
var item_desc=item.i_item_desc;
var category=item.i_category;
var class=item.i_class;
var price=item.i_current_price;}
if(category=="Music" || category=="Home" || category=="Sports"){
for each (date in store_sales.date){
var g=date.d_month_seq;}
if (g>=1200 && g<=1211){
emit({item_id:item_id,item_desc:item_desc, category:category, class:class, current_price:price},s);
}
}}}
reduce:_sum
答案示例: 键: {&#34; item_id&#34;:&#34; AAAAAAAAAAAEAAAA&#34;,&#34; item_desc&#34;:&#34;费率预计可能是必要的事件。 Circumstan&#34;,&#34; category&#34;:&#34; Sports&#34;,&#34; class&#34;:&#34; optics&#34;,&#34; current_price&#34;: 3.99}
值: 106079.49999999999
根目录中的项目数据:
{
"i_item_sk": 10454,
"i_item_id": "AAAAAAAAGNICAAAA",
"i_item_desc": "Results highlight as patterns; so right years show. Sometimes suitable lips move with the critics. English, old mothers ought to lift now perhaps future managers. Active, single ch",
"i_current_price": 2.88,
"i_class": "romance",
"i_category_id": 9,
"i_category": "Books",
"store_sales": [
{
"ss_sales_price": 20.24,
"ss_ext_sales_price": 1012,
"ss_coupon_amt": 0,
"date": [
{
"d_month_seq": 1187,
"d_year": 1998
}
],
"customer": [
{
"c_customer_sk": 65836,
"c_first_name": "Frank",
"c_last_name": "White",
}
]
},
{
"ss_sales_price": 225,
"ss_ext_sales_price": 1023,
"ss_coupon_amt": 0,...
查看root上的项目:
function(doc)
{
var item_id=doc.i_item_id;
var item_desc=doc.i_item_desc;
var category=doc.i_category;
var class=doc.i_class;
var price=doc.i_current_price;
if(category=="Music" || category=="Home" || category=="Sports"){
for each (store_sales in doc.store_sales) {
var s=store_sales.ss_ext_sales_price;
if(s==null){s=0}
for each (date in store_sales.date){
var g=date.d_month_seq;}
if (g>=1200 && g<=1211){
emit({item_id:item_id,item_desc:item_desc, category:category, class:class, current_price:price},s);
}
}}}
reduce:_sum
回答相同的答案。
我已经对数据库的设计和时间响应进行了清理和压缩,其中itens数据在根目录中的速度要快得多,而且数据大小也很小,但我不知道为什么。 有人可以解释一下吗?
答案 0 :(得分:0)
这可能是数据库压缩的区别吗?将现有数据库复制到空数据库时,只会将每个文档的最后一个数据库发送到新数据库,这样可能会更轻松。 The same applies to views