[英]Does the order of FILTER statement affect the performance of query in arangoDB?
例如,我有這個數據結構
{
easyFilter:1111,
hardFilter:[
{id:1},
{id:2},
...
]
}
如果我使用的查詢像
For u in collection
Filter u.easyFilter=1111 AND "somevalue" IN FLATTEN(u.hardFilter[*].id)
return u
如果我將easyFilter
放在第一位,因為它只是在對象的第一級上進行字符串比較,那么查詢運行速度會更快嗎?
是的,FILTER語句的順序確實會影響查詢的性能。
特別是在您的情況下
easyFilter
只是字符串比較,
而hardFilter
是由多個操作構成的
省略了索引的重要性。 他們是真正的性能查詢背后的人。 檢查ArangoDB文檔中的 處理索引 ,特別是何時使用哪個索引 。
為了提高示例的性能,添加哈希或Skiplist索引easyFilter絕對有幫助(取決於數據的類型/唯一性)。 這兩個索引也都支持數組,但是基於文檔,這僅適用於包含值的簡單數組,而不適用於對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.