2013-07-18 78 views
3

我能夠使用跳過,限制(和排序)來獲取UI中特定頁面的內容。 例如渲染頁面大小爲m的第n頁。 UI要求跳過n * m並限制m。如何獲取帶密碼限制的密碼總行數?

但是,UI要爲所有可能的網頁鏈接。爲此,我必須返回neo4j中可用的總行數。 例如對於總共p行,UI將生成超鏈接1,2,3 ...(p/m)。

什麼是最好的(在性能方面)的方式來獲得行的總數量,同時使用跳過,限制在了暗號?

回答

4

一般是不可取的,因爲提取所有結果需要你圖的大片讀取到內存中。

你有兩個選擇:

  1. 使用一個簡單的版本查詢作爲單獨的數查詢(這也可以異步運行)
  2. 合併數查詢和您的實際查詢爲一體,但它將會比跳過限制查詢貴得多,在最壞的情況下,totalcount/pageSize會更加昂貴

    start n = node:User(name = {username}) match n - [:KNOWS] - > ) 與n,總數(*)爲 匹配N - [:KNOWS] - >米 返回m.name,總 跳過{偏移} 限制{頁大小}

+0

由於邁克爾。執行計劃中我看到了一些。沒有API來提取這些信息? –

+0

對於一些非常不好的實體關係,count查詢需要一秒鐘,而使用skip和limit實際獲取數據需要<5毫秒。 (這是針對10個執行緩存引擎並使用參數化密碼) –