Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Dalam semua skenario, penempatan awal filter dalam kueri membantu mengurangi solusi perantara yang harus dipertimbangkan oleh rencana kueri. Ini berarti lebih sedikit memori dan lebih sedikit sumber daya komputasi yang diperlukan untuk mengeksekusi kueri.
Contoh berikut membantu Anda memahami dampak ini. Misalkan Anda menulis kueri untuk mengembalikan semua orang yang tinggal diIndia
. Salah satu versi kueri dapat berupa:
MATCH (n)-[:lives_in]->(city)-[:part_of]->(country)
WITH country, collect(n.firstName + " " + n.lastName) AS result
WHERE country.name = 'India'
RETURN result
Versi kueri di atas bukanlah cara paling optimal untuk mencapai kasus penggunaan ini. Filter country.name = 'India'
muncul kemudian dalam pola kueri. Ini pertama-tama akan mengumpulkan semua orang dan di mana mereka tinggal, dan mengelompokkan mereka berdasarkan negara, kemudian menyaring hanya untuk grup untukcountry.name = India
. Cara optimal untuk menanyakan hanya orang yang tinggal di India
dan kemudian melakukan agregasi pengumpulan.
MATCH (n)-[:lives_in]->(city)-[:part_of]->(country)
WHERE country.name = 'India'
RETURN collect(n.firstName + " " + n.lastName) AS result
Aturan umum adalah menempatkan filter sesegera mungkin setelah variabel diperkenalkan.