Latest web development tutorials

indeks SQLite

Indeks (Index) adalah tabel khusus, mesin pencari database yang digunakan untuk mempercepat pengambilan data. Sederhananya, indeks adalah pointer ke data dalam tabel. Sebuah indeks database dari buku belakang indeks sangat mirip.

Misalnya, jika Anda ingin membahas topik tertentu dalam sebuah buku semua halaman yang direferensikan, Anda harus terlebih dahulu menunjukkan indeks, sebuah daftar abjad dari semua topik, dan kemudian arahkan ke satu atau lebih spesifik nomor halaman.

Indeks memungkinkan permintaan cepat SELECT dan klausa WHERE, tetapi akan memperlambat entri data menggunakan UPDATE dan INSERT pernyataan saat. Indeks dapat dibuat atau dihapus, tapi tidak akan mempengaruhi data.

Membuat indeks menggunakan CREATE INDEX statement, yang memungkinkan Anda untuk nama indeks, tentukan tabel yang akan diindeks dan satu atau lebih kolom, dan menunjukkan indeks naik atau menurun.

Indeks mungkin unik, dan mirip kendala UNIK untuk mencegah duplikasi entri dalam kolom atau kombinasi kolom.

Perintah CREATE INDEX

CREATE INDEX Sintaks dasarnya adalah sebagai berikut:

CREATE INDEX index_name ON table_name;

Sebuah indeks yang terpisah

Indeks ini didasarkan pada hanya satu indeks pada daftar yang dibuat. Sintaks dasar adalah sebagai berikut:

CREATE INDEX index_name
ON table_name (column_name);

Indeks unik

Menggunakan indeks yang unik tidak hanya untuk kinerja, tetapi juga untuk integritas data. indeks unik tidak mengizinkan nilai-nilai duplikat ke dalam tabel. Sintaks dasar adalah sebagai berikut:

CREATE UNIQUE INDEX index_name
on table_name (column_name);

indeks komposit

Indeks komposisi didasarkan pada dua atau lebih kolom dari tabel yang dibuat. Sintaks dasar adalah sebagai berikut:

CREATE INDEX index_name
pada table_name (column1, column2);

Apakah Anda ingin membuat indeks yang terpisah merupakan indeks komposit, dengan mempertimbangkan sangat sering sebagai kondisi filter permintaan Anda dalam kolom klausa WHERE.

Jika nilai penggunaan kolom, memilih untuk menggunakan indeks yang terpisah. Jika ada filter di klausa WHERE sering menggunakan dua atau lebih kolom, kemudian memilih untuk menggunakan kombinasi indeks.

indeks implisit

Indeks implisit adalah bahwa ketika Anda membuat obyek, dibuat secara otomatis oleh database server. Indeks secara otomatis dibuat sebagai kendala utama dan kendala yang unik primer.

contoh

Berikut adalah contoh, kita akan membuat indeks pada tabel gaji kolom PERUSAHAAN:

sqlite> CREATE INDEX salary_index ON PERUSAHAAN (gaji);

Sekarang, mari kita gunakan daftar perintah.indices semua indeks yang tersedia di meja PERUSAHAAN sebagai berikut:

sqlite> PERUSAHAAN .indices

Ini menghasilkan hasil sebagai berikut, yangsqlite_autoindex_COMPANY_1indeks implisit dibuat ketika Anda membuat tabel.

salary_index
sqlite_autoindex_COMPANY_1

Anda bisa daftar semua rentang basis data indeks, sebagai berikut:

sqlite> SELECT * FROM sqlite_master MANA type = 'index';

perintah DROP INDEX

Indeks dapat menggunakan perintahDROP SQLite untuk menghapus.Perhatian khusus harus ketika menghapus indeks, karena kinerja dapat mengurangi atau menambah.

Sintaks dasar adalah sebagai berikut:

DROP INDEX index_name;

Anda dapat menggunakan pernyataan berikut untuk menghapus indeks buat sebelumnya:

sqlite> DROP INDEX salary_index;

Dalam keadaan apa untuk menghindari penggunaan indeks?

Meskipun indeks adalah untuk meningkatkan kinerja database, tapi di sini ada beberapa kasus kebutuhan untuk menghindari penggunaan indeks. Bila Anda menggunakan indeks, pedoman berikut harus dipertimbangkan kembali:

  • Indeks tidak boleh digunakan pada meja kecil.

  • Indeks tidak boleh digunakan dalam jumlah besar ada sering update atau meja operasi insert.

  • Indeks tidak boleh digunakan dalam kolom berisi sejumlah besar nilai-nilai NULL.

  • Indeks tidak boleh digunakan pada operasi sering kolom.