我嘗試使用neo4j和彈簧數據分頁百萬的對象。我的程序執行兩次查詢: 第一次匹配數據。第二次統計所有匹配我的限制的元素。但最後一個查詢需要很長時間。查詢需要很長的時間,而計數
這是PAGINATE功能的某些部分:
@Autowired
Neo4jOperations template;`
StringBuilder query = new StringBuilder(" match (n:Domain) where n.isPrincipale={isPrincipale} ");
mapOfVars.put("isPrincipale", true);
if (request.getParameterMap().containsKey("mydom")
&& !request.getParameter("mydom").isEmpty()) {
query.append(" and n.domain =~ {mydom}");
mapOfVars.put("mydom",".*(?i)"+request.getParameter("mydom")+".*");
}
的probleme是在這裏:
iTotalRecords = Integer.valueOf((template.query(query.toString() + " return count(n) as count", mapOfVars)).queryResults().iterator().next().get("count").toString());
計數我得到的匹配結果後:
query.append("
return n.domain as domain, n.hasDmarc as dmarc ,
n.spf_action as spf, n.updatedAt as updatedAt ,
n.existValue as exst , id(n) as id
skip {start} limit {displayCount}");
mapOfVars.put("start", iDisplayStart);
mapOfVars.put("displayCount", iDisplayCount);
Iterable<Map<String, Object>> domains = template.query(query.toString(), mapOfVars);
請分享更多的細節,否則,你不能幫助。有快速計數的方法,但沒有提供詳細信息... –
你可以檢查現在編輯後的請。 –