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 simpul 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 query berikut untuk menemukan pola ini:

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

Pemeriksaan person label pada n dan m berlebihan, karena kami mendefinisikan hubungan hanya muncul ketika keduanya bertipe. person 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 node 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 harus 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 lainnya. Jika Anda kemudian memperkenalkan email properti pada label node lain seperticompany, maka hasilnya akan berbeda antara dua versi kueri ini.