OrientDB - Indeks
Index adalah penunjuk yang menunjuk ke lokasi data dalam database. Indexingadalah konsep yang digunakan untuk mencari data dengan cepat tanpa harus mencari setiap record dalam database. OrientDB mendukung empat algoritma indeks dan beberapa jenis di dalamnya.
Empat jenis indeks adalah -
Indeks SB-Tree
Ini memberikan campuran bagus fitur yang tersedia dari jenis indeks lainnya. Lebih baik menggunakan ini untuk utilitas umum. Ini tahan lama, transaksional dan mendukung berbagai pertanyaan. Ini adalah tipe indeks default. Jenis plugin berbeda yang mendukung algoritma ini adalah -
UNIQUE- Indeks ini tidak mengizinkan kunci duplikat. Untuk indeks komposit, ini mengacu pada keunikan kunci komposit.
NOTUNIQUE - Indeks ini memungkinkan kunci duplikat.
FULLTEXT- Indeks ini didasarkan pada satu kata teks apa pun. Anda dapat menggunakannya dalam kueri melaluiCONTAINSTEXT operator.
DICTIONARY - Indeks ini serupa dengan yang menggunakan UNIK, tetapi dalam kasus kunci duplikat, mereka mengganti rekaman yang ada dengan rekaman baru.
Indeks Hash
Ini bekerja lebih cepat dan sangat ringan dalam penggunaan disk. Ini tahan lama, transaksional, tetapi tidak mendukung kueri rentang. Ia bekerja seperti HASHMAP, yang membuatnya lebih cepat pada pencarian tepat waktu dan mengkonsumsi lebih sedikit sumber daya daripada jenis indeks lainnya. Jenis plugin berbeda yang mendukung algoritma ini adalah -
UNIQUE_HASH_INDEX- Indeks ini tidak mengizinkan kunci duplikat. Untuk indeks komposit, ini mengacu pada keunikan kunci komposit.
NOTUNIQUE_HASH_INDEX - Indeks ini memungkinkan kunci duplikat.
FULLTEXT_HASH_INDEX- Indeks ini didasarkan pada satu kata teks apa pun. Anda dapat menggunakannya dalam query melalui operator CONTAINSTEXT.
DICTIONARY_HASH_INDEX - Indeks ini mirip dengan yang digunakan UNIQUE_HASH_INDEX, tetapi dalam kasus kunci duplikat, mereka mengganti catatan yang ada dengan catatan baru.
Indeks Teks Lengkap Lucene
Ini menyediakan indeks teks lengkap yang baik, tetapi tidak dapat digunakan untuk mengindeks tipe lain. Ini tahan lama, transaksional, dan mendukung berbagai kueri.
Indeks Spasial Lucene
Ini memberikan indeks spasial yang baik, tetapi tidak dapat digunakan untuk mengindeks tipe lain. Ini tahan lama, transaksional, dan mendukung berbagai kueri.
Membuat Indeks
Buat indeks adalah perintah untuk membuat indeks pada skema tertentu.
Pernyataan berikut adalah sintaks dasar untuk membuat indeks.
CREATE INDEX <name> [ON <class-name> (prop-names)] <type> [<key-type>]
[METADATA {<metadata>}]
Berikut adalah detail tentang opsi dalam sintaks di atas.
<name>- Mendefinisikan nama logis untuk indeks. Anda juga dapat menggunakan notasi <class.property> untuk membuat indeks otomatis yang terikat ke properti skema. <class> menggunakan kelas skema dan <property> menggunakan properti yang dibuat di kelas.
<class-name>- Memberikan nama kelas yang akan Anda buat indeks otomatis ke indeks. Kelas ini harus ada di database.
<prop-names>- Menyediakan daftar properti, yang Anda ingin indeks otomatis untuk diindeks. Properti ini harus sudah ada dalam skema.
<type> - Memberikan algoritma dan jenis indeks yang ingin Anda buat.
<key-type> - Menyediakan jenis kunci opsional dengan indeks otomatis.
<metadata> - Memberikan representasi JSON.
Contoh
Coba kueri berikut untuk membuat indeks otomatis yang terikat ke properti 'ID' dari pengguna sales_user.
orientdb> CREATE INDEX indexforID ON sales_user (id) UNIQUE
Jika query di atas berhasil dijalankan, Anda akan mendapatkan output berikut.
Creating index...
Index created successfully with 4 entries in 0.021000 sec(s)
Membuat Kueri Indeks
Anda dapat menggunakan kueri pemilihan untuk mendapatkan catatan dalam indeks.
Coba kueri berikut untuk mengambil kunci indeks bernama 'indexforId'.
SELECT FROM INDEX:indexforId
Jika query di atas berhasil dijalankan, Anda akan mendapatkan output berikut.
----+------+----+-----
# |@CLASS|key |rid
----+------+----+-----
0 |null |1 |#11:7
1 |null |2 |#11:6
2 |null |3 |#11:5
3 |null |4 |#11:8
----+------+----+-----
Jatuhkan Indeks
Jika Anda ingin menghapus indeks tertentu, Anda dapat menggunakan perintah ini. Operasi ini tidak menghapus rekaman terkait.
Pernyataan berikut adalah sintaks dasar untuk menghapus indeks.
DROP INDEX <name>
Dimana <name> memberikan nama indeks yang ingin Anda hapus.
Coba kueri berikut untuk menghapus indeks bernama 'ID' dari pengguna sales_user.
DROP INDEX sales_users.Id
Jika query di atas berhasil dijalankan, Anda akan mendapatkan output berikut.
Index dropped successfully