konvensyen indeks
1. [Mandatori] Medan dengan ciri perniagaan yang unik, malah medan gabungan, mesti dibina ke dalam indeks yang unik.
Nota: Jangan fikir bahawa indeks unik mempengaruhi kelajuan sisipan ini boleh diabaikan, tetapi peningkatan dalam kelajuan carian adalah jelas; lapisan, selagi tiada Indeks unik, menurut Undang-undang Murphy, mesti mempunyai data yang kotor.
Nota:
Walaupun apabila menyertai dua jadual, anda mesti memberi perhatian kepada indeks jadual dan prestasi SQL.
3 [Mandatori] Apabila membuat indeks pada medan varchar, anda mesti menentukan panjang indeks Ia tidak perlu mengindeks keseluruhan medan ditentukan berdasarkan perbezaan teks sebenar.
Explanation:
Panjang dan perbezaan indeks adalah sepasang percanggahan use count(distinct left( column name , the index length))/count(*) ditentukan oleh darjah perbezaan.4 [Mandatori] Dilarang sama sekali menggunakan kabur kiri atau kabur penuh dalam carian halaman Jika perlu, sila gunakan enjin carian untuk menyelesaikan masalah.
Fail indeks mempunyai ciri padanan awalan paling kiri B-Tree Jika nilai di sebelah kiri tidak ditentukan, maka indeks ini tidak boleh digunakan.
5. [Disyorkan] Jika ada pesanan mengikut senario, sila beri perhatian kepada keteraturan indeks. Medan terakhir dalam susunan mengikut ialah sebahagian daripada indeks gabungan dan diletakkan pada penghujung susunan gabungan indeks untuk mengelakkan situasi susun_fail dan menjejaskan prestasi pertanyaan.
di mana a =?
6 [Disyorkan] Gunakan indeks penutup untuk melaksanakan operasi pertanyaan untuk mengelakkan operasi pemulangan jadual.
Penjelasan: Jika sesebuah buku perlu tahu apakah tajuk Bab 11, adakah ia akan beralih ke halaman yang sepadan dengan Bab 11? Hanya semak imbas direktori seketika Direktori ini berfungsi sebagai indeks penutup.
Contoh positif: Jenis indeks yang boleh dibuat: indeks kunci utama, indeks unik, indeks biasa dan indeks penutup ialah kesan pertanyaan Menggunakan hasil explain, lajur tambahan akan muncul: menggunakan indeks .
7. [Disyorkan] Gunakan korelasi tertunda atau subquery untuk mengoptimumkan berbilang senario halaman.
Penjelasan: MySQL tidak melangkau baris offset, tetapi mengambil baris offset + N, kemudian mengembalikan baris offset sebelum menyerah, dan mengembalikan baris N apabila offset sangat besar, kecekapan atau kawalan adalah sangat rendah Jumlah bilangan halaman yang dikembalikan, atau penulisan semula SQL untuk halaman yang melebihi ambang tertentu. . a.id =b.id
8 [Cadangan] Matlamat pengoptimuman prestasi SQL: sekurang-kurangnya mencapai tahap julat, keperluan adalah tahap ref, jika ia boleh menjadi consts
yang terbaik.
Nota:
3) julat melakukan pengambilan julat pada indeks.
Contoh kaunter:
terangkan keputusan jadual, jenis = indeks, imbasan penuh fail fizikal indeks, kelajuannya sangat perlahan, tahap indeks inimasih rendah berbanding julat, dan kerdil dengan penuh imbasan meja.
9 [Cadangan] Apabila membina indeks gabungan, indeks yang paling dibezakan adalah di sebelah kiri.
Contoh positif:Jika di mana a = dan b = , lajur a hampir hampir dengan nilai unik, maka anda hanya perlu membina indeks idx_a
.
Nota: Apabila terdapat syarat penghakiman bercampur tanda tidak sama dan tanda sama, semasa membina indeks, sila letakkan lajur keadaan tanda sama di hadapan. Contohnya: di mana a >?dan b =? Kemudian walaupun a mempunyai darjah perbezaan yang lebih tinggi, b mesti diletakkan di hadapan indeks.
10 [Rujukan] Elakkan salah faham melampau berikut semasa membuat indeks:
1) Salah faham bahawa pertanyaan memerlukan indeks.
2) Tersilap percaya bahawa indeks akan menggunakan ruang dan serius memperlahankan kemas kini dan penambahan baharu.