|
|
Diposting pada 20/09/2019 09.31.08
|
|
|

Konsep pengindeksan
Tujuan pembuatan indeks adalah untuk meningkatkan kinerja sistem database, mempercepat kecepatan kueri data, dan mengurangi waktu respons sistem. Apa itu indeks: Indeks dalam database mirip dengan daftar isi buku, di mana Anda dapat dengan cepat menemukan informasi yang Anda inginkan tanpa membaca seluruh buku. Dalam database, program database menggunakan indeks untuk mengkueri data dalam tabel dengan cepat tanpa harus memindai seluruh tabel. Daftar isi dalam buku adalah daftar kata dan nomor halaman di mana mereka berada, dan indeks dalam database adalah daftar nilai dalam tabel dan tempat setiap nilai disimpan. Pro dan kontra pengindeksan: Sebagian besar overhead eksekusi kueri adalah I/O, dan salah satu tujuan utama menggunakan indeks untuk meningkatkan performa adalah untuk menghindari pemindaian tabel penuh, karena pemindaian tabel penuh perlu membaca setiap halaman data tabel dari disk, dan jika ada indeks yang menunjuk ke nilai data, kueri hanya perlu membaca beberapa kali ke disk. Oleh karena itu, penggunaan indeks yang wajar dapat mempercepat kueri data. Namun, indeks tidak selalu meningkatkan performa sistem, tabel yang diindeks perlu memakan lebih banyak ruang penyimpanan dalam database, dan perintah yang sama untuk memodifikasi dan menghapus data akan memakan waktu lebih lama untuk dijalankan dan memelihara indeks. Oleh karena itu, kita harus menggunakan indeks secara wajar dan memperbaruinya tepat waktu untuk menghapus indeks suboptimal.
Klasifikasi indeks
Indeksnya mirip dengan daftar isi di depan kamus bahasa Cina, dan Anda dapat dengan cepat menemukan kata yang ingin Anda temukan sesuai dengan pinyin atau ibu kota. UNIK: Nilai indeks setiap baris adalah unik (batasan unik dibuat, dan sistem akan secara otomatis membuat indeks unik). Indeks Kunci Utama: Kolom kunci utama yang ditentukan saat tabel dibuat secara otomatis membuat indeks kunci primer dan memiliki karakteristik unik. CLUSTERED: Indeks berkluster setara dengan menggunakan pencarian pinyin kamus, karena indeks berkluster menyimpan catatan yang secara fisik terus menerus, yaitu, pinyin a harus diikuti dengan b. NONCLUSTERED: Indeks NONCLUSTERED setara dengan menggunakan radikal kamus untuk mencari, indeks non-clustered secara logis berkelanjutan, dan penyimpanan fisik tidak berdekatan. Indeks berkluster hanya dapat memiliki satu tabel dalam tabel, sedangkan indeks non-berkluster dapat memiliki lebih dari satu tabel dalam tabel.
Bidang mana yang perlu diindeks
1. Kunci primer dan asing tabel harus memiliki indeks 2. Tabel dengan lebih dari 300 data harus memiliki indeks 3. Tabel yang sering terhubung ke tabel lain harus diindeks pada bidang yang terhubung 4. Bidang yang sering muncul dalam klausa Where, terutama yang ada dalam tabel besar, harus diindeks 5. Bidang yang sering diurutkan atau dikelompokkan (yaitu, melakukan operasi GROUP BY atau ORDER BY) harus diindeks 6. Indeks harus dibangun di atas bidang yang sangat selektif 7. Indeks harus dibangun di atas bidang kecil, untuk bidang teks besar atau bahkan bidang ultra-panjang, jangan membuat indeks, dan menggunakan bilangan bulat sebagai nilai kunci sebisa mungkin, karena bilangan bulat memiliki kecepatan akses tercepat 8. Pembentukan indeks komposit perlu dianalisis dengan cermat; Cobalah untuk mempertimbangkan untuk menggunakan indeks bidang tunggal sebagai gantinya 9. Tabel yang sering melakukan manipulasi data tidak boleh diindeks terlalu banyak 10. Hapus indeks yang tidak berguna untuk menghindari dampak negatif pada rencana eksekusi
Kerugian dari terlalu banyak indeks
1. Ruang penyimpanan akan menjadi lebih besar, dan setiap indeks perlu disimpan di ruang angkasa 2. Jika ada banyak indeks non-cluster, setelah indeks berkluster berubah, maka semua indeks non-clustered akan berubah sesuai 3. Terlalu banyak indeks akan menyebabkan peningkatan jumlah kombinasi yang perlu dievaluasi dalam proses pengoptimalan pengoptimal, meningkatkan waktu kueri 4. Setiap indeks memiliki informasi statistik, dan semakin banyak indeks, semakin banyak informasi statistik, yang meningkatkan waktu kueri 5. Perbarui overhead, setelah data berubah, dan ada banyak kolom yang berubah, hal itu dapat menyebabkan beberapa indeks berubah, mengakibatkan pembaruan, penghapusan, dan sisipan melambat
|
Mantan:Video MV pengiring kuat remajaDepan:C# mendapatkan huruf disk sistem saat ini, direktori sistem, desktop, dll
|