Sebuah indeks adalah struktur data yang meningkatkan kecepatan operasi pengambilan data dalam database.
Di Neo4j, Anda dapat membuat indeks di atas properti pada simpul mana pun yang telah diberi label. Setelah Anda membuat indeks, Neo4j akan mengelolanya dan selalu memperbaruinya setiap kali database diubah.
Untuk membuat indeks, gunakan CREATE INDEX ON
penyataan. Seperti ini:
CREATE INDEX ON :Album(Name)
Pada contoh di atas, kita membuat indeks pada Name properti semua node dengan Album label.
Ketika pernyataan berhasil, pesan berikut akan ditampilkan:
Saat Anda membuat indeks, Neo4j akan membuat indeks di latar belakang. Jika database Anda besar, ini mungkin memakan waktu.
Hanya setelah Neo4j selesai membuat indeks, indeks akan dibawa online, dan dapat digunakan dalam kueri.
Melihat Indeks
Indeks (dan batasan) menjadi bagian dari skema database (opsional).
Di browser Neo4j, Anda dapat meninjau semua indeks dan batasan dengan menggunakan :schema
perintah.
Cukup ketik ini:
:schema
Anda akan melihat daftar indeks dan batasan apa pun:
Petunjuk Indeks
Setelah indeks dibuat, indeks akan secara otomatis digunakan saat Anda melakukan kueri yang relevan.
Namun, Neo4j juga memungkinkan Anda untuk menerapkan satu atau lebih indeks dengan petunjuk. Anda dapat membuat petunjuk indeks dengan memasukkan USING INDEX ...
dalam kueri Anda.
Jadi kita bisa menegakkan indeks di atas sebagai berikut:
MATCH (a:Album {Name: "Somewhere in Time"}) USING INDEX a:Album(Name) RETURN a
Anda juga dapat memberikan beberapa petunjuk. Cukup tambahkan USING INDEX
baru untuk setiap indeks yang ingin Anda terapkan.
Untuk Mengindeks atau Tidak Mengindeks?
Ketika Neo4j membuat indeks, itu membuat salinan data yang berlebihan dalam database. Oleh karena itu, menggunakan indeks akan menghasilkan lebih banyak ruang disk yang digunakan, ditambah penulisan yang lebih lambat ke disk.
Oleh karena itu, Anda perlu mempertimbangkan faktor-faktor ini saat memutuskan data/properti mana yang akan diindeks.
Secara umum, merupakan ide yang baik untuk membuat indeks ketika Anda tahu akan ada banyak data pada node tertentu. Selain itu, jika Anda menemukan kueri terlalu lama untuk dikembalikan, menambahkan indeks dapat membantu.