Tutorial klasik...login
Tutorial klasik SQLite
pengarang:php.cn  masa kemas kini:2022-04-13 17:05:02

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:

CREATE INDEX index_name ON table_name;

Indeks lajur tunggal

Indeks lajur tunggal ialah indeks yang dibuat berdasarkan hanya satu lajur jadual. Sintaks asas adalah seperti berikut:

BUAT INDEX index_name
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:

BUAT INDEKS UNIK nama_indeks
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:

BUAT INDEX nama_indeks
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:

sqlite> CREATE INDEX salary_index ON COMPANY ( gaji) ;

Sekarang, mari kita gunakan perintah .indeks untuk menyenaraikan semua indeks yang tersedia pada jadual SYARIKAT seperti berikut:

sqlite> . indeks SYARIKAT

Ini akan menghasilkan hasil berikut, dengan sqlite_autoindex_COMPANY_1 ialah indeks tersirat yang dicipta apabila jadual dicipta.

indeks_gaji
sqlite_autoindex_COMPANY_1

Anda boleh menyenaraikan semua indeks pada skop pangkalan data seperti ini:

sqlite> HERsE SELECT * FROM; type = 'index';

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:

DROP INDEX index_name;

Anda boleh menggunakan pernyataan berikut untuk memadamkan indeks yang dibuat sebelum ini:

sqlite> DROP INDEX salary_index;

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.

Laman web PHP Cina