indeks SQLite
Indeks ialah jadual carian khas yang digunakan oleh enjin carian pangkalan data untuk mempercepatkan pengambilan data. Ringkasnya, indeks ialah penunjuk kepada data dalam jadual. Indeks dalam pangkalan data sangat serupa dengan indeks di belakang buku.
Contohnya, jika anda ingin memetik semua halaman dalam buku yang membincangkan topik tertentu, anda akan mula-mula menunjuk ke indeks, yang menyenaraikan semua topik dalam susunan abjad, dan kemudian menunjuk kepada satu atau lebih khusus nombor muka surat .
Indeks membantu mempercepatkan pertanyaan SELECT dan klausa WHERE, tetapi ia memperlahankan input data apabila menggunakan pernyataan UPDATE dan INSERT. Indeks boleh dibuat atau dipadamkan tanpa menjejaskan data.
Buat indeks menggunakan penyataan CREATE INDEX, yang membolehkan anda menamakan indeks, menentukan jadual dan lajur atau lajur untuk diindeks dan menunjukkan sama ada indeks dalam tertib menaik atau menurun.
Indeks juga boleh unik, serupa dengan kekangan UNIK, menghalang entri pendua pada lajur atau gabungan lajur.
Arahan CREATE INDEX
Sintaks asas CREATE INDEX adalah seperti berikut:
Indeks lajur tunggal
Indeks lajur tunggal ialah indeks yang dibuat berdasarkan hanya satu lajur jadual. Sintaks asas adalah seperti berikut:
ON table_name (column_name);
Unik Index
Menggunakan indeks unik ialah bukan sahaja untuk prestasi, Juga untuk integriti data. Indeks unik tidak membenarkan sebarang nilai pendua dimasukkan ke dalam jadual. Sintaks asas adalah seperti berikut:
pada nama_jadual (nama_lajur);
Indeks gabungan
Indeks gabungan adalah berdasarkan pada jadual Indeks yang dibuat pada dua atau lebih lajur. Sintaks asas adalah seperti berikut:
pada nama_jadual (lajur1, lajur2);
Sama ada anda mahu mencipta indeks lajur tunggal atau indeks gabungan, anda mesti menganggap Lajur yang digunakan dengan kerap dalam klausa WHERE sebagai penapis pertanyaan.
Jika nilai menggunakan lajur, pilih untuk menggunakan indeks lajur tunggal. Pilih untuk menggunakan indeks komposit jika dua atau lebih lajur kerap digunakan dalam klausa WHERE sebagai penapis.
Indeks tersirat
Indeks tersirat ialah indeks yang dicipta secara automatik oleh pelayan pangkalan data apabila mencipta objek. Indeks dibuat secara automatik dengan kekangan utama utama dan kekangan unik.
Contoh
Berikut adalah contoh di mana kita akan membuat indeks pada lajur gaji jadual SYARIKAT:
Sekarang, mari kita gunakan perintah .indeks untuk menyenaraikan semua indeks yang tersedia pada jadual SYARIKAT seperti berikut:
Ini akan menghasilkan hasil berikut, dengan sqlite_autoindex_COMPANY_1 ialah indeks tersirat yang dicipta apabila jadual dicipta.
sqlite_autoindex_COMPANY_1
Anda boleh menyenaraikan semua indeks pada skop pangkalan data seperti ini:
DROP INDEX Command
Indeks boleh dipadamkan menggunakan perintah DROP SQLite. Penjagaan khusus harus diambil apabila menurunkan indeks kerana prestasi mungkin merosot atau bertambah baik.
Sintaks asas adalah seperti berikut:
Anda boleh menggunakan pernyataan berikut untuk memadamkan indeks yang dibuat sebelum ini:
Dalam keadaan apakah anda harus mengelak daripada menggunakan indeks?
Walaupun tujuan indeks adalah untuk meningkatkan prestasi pangkalan data, terdapat beberapa situasi di mana anda perlu mengelak daripada menggunakan indeks. Apabila menggunakan indeks, garis panduan berikut harus dipertimbangkan semula:
Indeks tidak boleh digunakan pada jadual yang lebih kecil.
Indeks tidak boleh digunakan pada jadual dengan kemas kini kelompok besar atau operasi sisipan yang kerap.
Indeks tidak boleh digunakan pada lajur yang mengandungi sejumlah besar nilai NULL.
Indeks tidak boleh digunakan pada lajur yang kerap dikendalikan.