需要有關 gremlin 查詢性能的幫助,因為我正在嘗試檢索型別為 1 的所有通知(頂點)。索引屬性是混合的接收器。
在下面給出的查詢中,回合時間約為 400 毫秒
gremlin> g.V().has('receiver','3145912').has('type','1').profile()
==>Traversal Metrics Step Count Traversers Time (ms) % Dur
============================================================================================================= JanusGraphStep([],[receiver.eq(3145912), type.e... 94 94 504.393 100.00
\_condition=(receiver = 3145912 AND type = 1)
\_orders=[]
\_isFitted=true
\_isOrdered=true
\_query=[(type = 1)]:byTypeMixed
\_index=byTypeMixed
\_index_impl=search optimization 0.009 optimization 0.189 backend-query 16538 494.729
\_query=byTypeMixed:[(type = 1)]:byTypeMixed backend-query 95 9.352
\_query=byReceiverMixed:[(receiver = 3145912)]:byReceiverMixed
>TOTAL - - 504.393 -
現在,如果我運行上面的查詢洗掉第二個條件檢查它的回合時間是 3ms ,
gremlin> g.V().has('receiver','3145912').profile()
==>Traversal Metrics
Step Count Traversers Time (ms) % Dur
=============================================================================================================
JanusGraphStep([],[receiver.eq(3145912)]) 95 95 3.735 100.00
\_condition=(receiver = 3145912)
\_orders=[]
\_isFitted=true
\_isOrdered=true
\_query=[(receiver = 3145912)](2000):byReceiverMixed
\_index=byReceiverMixed
\_index_impl=search
optimization 0.012
optimization 0.283
backend-query 95 3.367
\_query=byReceiverMixed:[(receiver = 3145912)](2000):byReceiverMixed
\_limit=2000
>TOTAL - - 3.735 -
有沒有辦法改進第一個查詢?
謝謝
uj5u.com熱心網友回復:
您從組態檔中看到,附加的“型別”過濾器需要 JanusGraph 從索引后端檢索 16.000 個識別符號。使用以下方法從存盤后端檢索“型別”值可能更快:
g.V().has('receiver','3145912').where(values('type').is('1'))
如果在接收器和型別屬性上過濾頂點是一種經常重復的查詢模式,那么也可以在這兩個屬性上定義一個索引(當使用帶有 JanusGraph 的索引后端時)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/514365.html
上一篇:自加入需要時間
下一篇:提高r中串列搜索功能的性能
