Hi,
This query is taking 4-5 seconds for offset 55541.
When offset is 0, then it takes 15 ms.
Select propertyId,startDate,endDate,status,statusChangedDate,portCode,locationId,alerts,firstName,lastName,birthDate,
citizenshipCountryCode,genderCode,identifications,reservationNumber,phones,phone,stateroom,teamMemberNumber,photoMediaItemId,
securityPhotoMediaItemId,profilePhotoMediaItemId,personTypeCode
From reporting_v1
Where type = ‘PersonMovements’
And meta().id not like ‘_sync%’
And propertyId = ‘VC’
And startDate between ‘2018-03-01’ and ‘2018-03-25’
order by propertyId
limit 10 offset 55541
;
Index:
CREATE INDEX IX_Date_cover2_PersonMovements ON reporting_v1(propertyId,startDate,endDate,status,statusChangedDate,portCode,locationId,alerts,firstName,lastName,birthDate,citizenshipCountryCode,genderCode,identifications,reservationNumber,phones,phone,stateroom,teamMemberNumber,photoMediaItemId,securityPhotoMediaItemId,profilePhotoMediaItemId,personTypeCode) WHERE ((type = "PersonMovements") and (not ((meta().id) like "_sync%")))
Explain :
[
{
"plan": {
"#operator": "Sequence",
"~children": [
{
"#operator": "Sequence",
"~children": [
{
"#operator": "IndexScan",
"covers": [
"cover ((`reporting_v1`.`propertyId`))",
"cover ((`reporting_v1`.`startDate`))",
"cover ((`reporting_v1`.`endDate`))",
"cover ((`reporting_v1`.`status`))",
"cover ((`reporting_v1`.`statusChangedDate`))",
"cover ((`reporting_v1`.`portCode`))",
"cover ((`reporting_v1`.`locationId`))",
"cover ((`reporting_v1`.`alerts`))",
"cover ((`reporting_v1`.`firstName`))",
"cover ((`reporting_v1`.`lastName`))",
"cover ((`reporting_v1`.`birthDate`))",
"cover ((`reporting_v1`.`citizenshipCountryCode`))",
"cover ((`reporting_v1`.`genderCode`))",
"cover ((`reporting_v1`.`identifications`))",
"cover ((`reporting_v1`.`reservationNumber`))",
"cover ((`reporting_v1`.`phones`))",
"cover ((`reporting_v1`.`phone`))",
"cover ((`reporting_v1`.`stateroom`))",
"cover ((`reporting_v1`.`teamMemberNumber`))",
"cover ((`reporting_v1`.`photoMediaItemId`))",
"cover ((`reporting_v1`.`securityPhotoMediaItemId`))",
"cover ((`reporting_v1`.`profilePhotoMediaItemId`))",
"cover ((`reporting_v1`.`personTypeCode`))",
"cover ((meta(`reporting_v1`).`id`))"
],
"filter_covers": {
"cover ((`reporting_v1`.`type`))": "PersonMovements",
"cover ((not ((meta(`reporting_v1`).`id`) like \"_sync%\")))": true
},
"index": "IX_Date_cover2_PersonMovements",
"index_id": "5e26c91480916c13",
"keyspace": "reporting_v1",
"limit": "(55541 + 10)",
"namespace": "default",
"spans": [
{
"Exact": true,
"Range": {
"High": [
"\"VC\"",
"successor(\"2018-03-25\")"
],
"Inclusion": 1,
"Low": [
"\"VC\"",
"\"2018-03-01\""
]
}
}
],
"using": "gsi"
},
{
"#operator": "Parallel",
"~child": {
"#operator": "Sequence",
"~children": [
{
"#operator": "Filter",
"condition": "((((cover ((`reporting_v1`.`type`)) = \"PersonMovements\") and cover ((not ((meta(`reporting_v1`).`id`) like \"_sync%\")))) and (cover ((`reporting_v1`.`propertyId`)) = \"VC\")) and (cover ((`reporting_v1`.`startDate`)) between \"2018-03-01\" and \"2018-03-25\"))"
},
{
"#operator": "InitialProject",
"result_terms": [
{
"expr": "cover ((`reporting_v1`.`propertyId`))"
},
{
"expr": "cover ((`reporting_v1`.`startDate`))"
},
{
"expr": "cover ((`reporting_v1`.`endDate`))"
},
{
"expr": "cover ((`reporting_v1`.`status`))"
},
{
"expr": "cover ((`reporting_v1`.`statusChangedDate`))"
},
{
"expr": "cover ((`reporting_v1`.`portCode`))"
},
{
"expr": "cover ((`reporting_v1`.`locationId`))"
},
{
"expr": "cover ((`reporting_v1`.`alerts`))"
},
{
"expr": "cover ((`reporting_v1`.`firstName`))"
},
{
"expr": "cover ((`reporting_v1`.`lastName`))"
},
{
"expr": "cover ((`reporting_v1`.`birthDate`))"
},
{
"expr": "cover ((`reporting_v1`.`citizenshipCountryCode`))"
},
{
"expr": "cover ((`reporting_v1`.`genderCode`))"
},
{
"expr": "cover ((`reporting_v1`.`identifications`))"
},
{
"expr": "cover ((`reporting_v1`.`reservationNumber`))"
},
{
"expr": "cover ((`reporting_v1`.`phones`))"
},
{
"expr": "cover ((`reporting_v1`.`phone`))"
},
{
"expr": "cover ((`reporting_v1`.`stateroom`))"
},
{
"expr": "cover ((`reporting_v1`.`teamMemberNumber`))"
},
{
"expr": "cover ((`reporting_v1`.`photoMediaItemId`))"
},
{
"expr": "cover ((`reporting_v1`.`securityPhotoMediaItemId`))"
},
{
"expr": "cover ((`reporting_v1`.`profilePhotoMediaItemId`))"
},
{
"expr": "cover ((`reporting_v1`.`personTypeCode`))"
}
]
}
]
}
}
]
},
{
"#operator": "Offset",
"expr": "55541"
},
{
"#operator": "Limit",
"expr": "10"
},
{
"#operator": "FinalProject"
}
]
},
"text": "Select propertyId,startDate,endDate,status,statusChangedDate,portCode,locationId,alerts,firstName,lastName,birthDate,\ncitizenshipCountryCode,genderCode,identifications,reservationNumber,phones,phone,stateroom,teamMemberNumber,photoMediaItemId,\nsecurityPhotoMediaItemId,profilePhotoMediaItemId,personTypeCode\nFrom reporting_v1 \nWhere type = 'PersonMovements'\nAnd meta().id not like '_sync%'\nAnd propertyId = 'VC' \nAnd startDate between '2018-03-01' and '2018-03-25' \norder by propertyId\nlimit 10 offset 55541\n;"
}
]
The version of couchbase that I am using is 4.6.4-4590-enterprise.
It is a single node cluster running on a machine having 4 core CPU and 16 GB RAM.
The bucket is allocated with 1.4 GB RAM. The total number of documents in the bucket are approx. 0.2 Million.