2016-04-07 15 views
1

Sadece sormak için çok basit bir sorum var. Neo4j ve aşağıdaki iki sorgular tarafından sağlanan örnek film veritabanı varsayalım:MATCH yan tümcesi, bir WHERE yan tümcesine sahip filtreleme özellikleri veya MATCH ile mi?

MATCH (n:Person)-[:ACTED_IN]->(m:Movie {title:"The Matrix"}) 
RETURN n,m 

ve

MATCH (n:Person)-[:ACTED_IN]->(m:Movie) 
WHERE m.title = "The Matrix" 
RETURN n,m 

iki sorgular hesaplama eşdeğer Are veya ilk vaka daha etkili olduğunu böyledir?

Gördüğüm gibi, ilk durumda, MATCH, orijinal grafiğe geçerken istenen "alt-üst" satırını üretir. İkinci durumda, daha sonra, daha fazla alt düğüm, MATCH tarafından üretilmekte olup, daha sonra talep edilene indirgenmektedir, bir kere yedek düğümler filtrelenir, sağa mı? Herkes bu varsayımı destekleyebilir mi, yoksa yanlış mı?

cevap

1

Bu sorgular aynıysa, neo4j sürümünüzü kontrol etmek isterseniz, profile ifadesini kullanmalısınız. Daha fazla bilgi için buraya bak http://neo4j.com/docs/stable/how-do-i-profile-a-query.html

+0

Teşekkürler Evgen. Bu çok yardımcı oldu. Tam olarak aynı işi yapan iki sorgu gibi görünüyor, Sorgu işlenirken gereksiz sonuçların üretimini önlemek için filtreleme önceliklendirilir. –

İlgili konular