performance - Different size for the same view on CouchDB -


i have 2 databases similar data (organized differently) , i've created view each 1 returning same response. have notice time response of query different returning same response, 1 being 3182ms, other being 217ms approximately, having queried 5 times. query both using:

curl -x ...db1/_design/query1/view/q1?group=true , curl -x ...db2/_design/query1/view/q1?group=true. 

i have checked data sizes of design documents using curl -x ...db1/_design/query1/_info. design data size of first 146073878 bites , second 3739596 bites. thought both should have same size, because return same view, , havent used filters, both views beeing equal. can explain me why same view created different databases have different sizes?

my data organized using 2 differents roots, same data, changing root:

customer data in root:

{    "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 patterns; right years show. suitable lips move critics. english, old mothers ought lift 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,... 

view function customer in root:

function(doc)  {     each (store_sales in doc.store_sales) { var s=store_sales.ss_ext_sales_price; if(s==null){s=0} 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"){         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    

example of answer: key: {"item_id": "aaaaaaaaaaaeaaaa", "item_desc": "rates expect necessary events. circumstan", "category": "sports", "class": "optics", "current_price": 3.99}

value: 106079.49999999999

item data in root:

{   "i_item_sk": 10454,   "i_item_id": "aaaaaaaagnicaaaa",   "i_item_desc": "results highlight patterns; right years show. suitable lips move critics. english, old mothers ought lift 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,...        

view item on 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"){ each (store_sales in doc.store_sales) { var s=store_sales.ss_ext_sales_price; if(s==null){s=0}         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    

returning same answer.

i have made cleanup , compaction of designs , time response of database itens data in root faster, , sizes of data size smaller too, dont know why. can explain me?

could difference of database compaction? when replicate existing databases empty one, last revision of each documents sent new one, making potentially way lighter. the same applies views


Comments