View a markdown version of this page

Hindari pemeriksaan label node yang berlebihan dengan menggunakan nama hubungan granular - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Hindari pemeriksaan label node yang berlebihan dengan menggunakan nama hubungan granular

Saat mengoptimalkan kinerja, menggunakan label hubungan yang eksklusif untuk pola node memungkinkan penghapusan pemfilteran label pada node. Pertimbangkan model grafik di mana hubungan hanya likes digunakan untuk mendefinisikan hubungan antara dua person node. Kita bisa menulis kueri berikut untuk menemukan pola ini:

MATCH (n:person)-[:likes]->(m:person) RETURN n, m

Pemer person iksaan label pada n dan m berlebihan, karena kami mendefinisikan hubungan untuk hanya muncul ketika keduanya dari jenisperson. Untuk mengoptimalkan kinerja, kita dapat menulis kueri sebagai berikut:

MATCH (n)-[:likes]->(m) RETURN n, m

Pola ini juga dapat diterapkan ketika properti eksklusif untuk label simpul tunggal. Asumsikan bahwa hanya person node yang memiliki propertiemail, oleh karena itu memverifikasi kecocokan person label node berlebihan. Menulis kueri ini sebagai:

MATCH (n:person) WHERE n.email = 'xxx@gmail.com' RETURN n

Kurang efisien daripada menulis kueri ini sebagai:

MATCH (n) WHERE n.email = 'xxx@gmail.com' RETURN n

Anda hanya boleh mengadopsi pola ini ketika kinerja penting dan Anda memiliki pemeriksaan dalam proses pemodelan Anda untuk memastikan label tepi ini tidak digunakan kembali untuk pola yang melibatkan label simpul lain. Jika nanti Anda memperkenalkan email properti pada label node lain seperticompany, maka hasilnya akan berbeda antara dua versi kueri ini.