Rumah >pangkalan data >tutorial mysql >Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL

WBOY
WBOYke hadapan
2022-03-07 16:56:132534semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang mysql, yang terutamanya memperkenalkan isu berkaitan tentang explain Perintah explain digunakan terutamanya untuk melihat pelan pelaksanaan penyata SQL Adakah anda menggunakan indeks atau melakukan imbasan jadual penuh. Saya harap ia akan membantu semua orang.

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL

Pembelajaran yang disyorkan: tutorial mysql

Perintah explain digunakan terutamanya untuk melihat pelan pelaksanaan pernyataan SQL dan semak sama ada pernyataan SQL telah digunakan Indeks, sama ada terdapat imbasan jadual penuh, dsb. Ia boleh mensimulasikan pengoptimum untuk melaksanakan pernyataan pertanyaan SQL untuk mengetahui cara MySQL mengendalikan pernyataan SQL pengguna.

1. Apa yang boleh dilakukan oleh explain

Melalui pernyataan explain, kita boleh menganalisis keputusan berikut

表的读取顺序 数据读取操作的操作类型
表之间的引用 哪些索引可以使用
每张表有多少行被优化器查询 哪些索引被实际使用

2

Penggunaan: terangkan pernyataan SQL;

MariaDB [class_info]> explain select * from student;
+--+-----------+-------+----+-------------+-----+-------+-----+----+-----+
|id|select_type| table |type|possible_keys| key |key_len| ref |rows|Extra|
+--+-----------+-------+----+-------------+-----+-------+-----+----+-----+
| 1|   SIMPLE  |student| ALL|     NULL    | NULL| NULL  | NULL|  1 |     |
+--+-----------+-------+----+-------------+-----+-------+-----+----+-----+
1 row in set (0.00 sec)
Expain menghasilkan 10 medan iaitu id, select_type, table, type, possible_keys , key, key_len, ref, rows, Extra

  

Ringkasan perihalan:


3. Terangkan maksud setiap medan

3.1 id

id ialah nombor urutan pertanyaan pilih, termasuk set nombor, yang menunjukkan pelaksanaan klausa pilih dalam pertanyaan atau Susunan jadual operasi. Hasil id mempunyai tiga situasi berikut:

 ● Id adalah sama, susunan pelaksanaan adalah dari atas ke bawah, tanpa mengira susunan dalam sql

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL

 ● Jika ia adalah kanak-kanak Untuk pertanyaan, nombor siri id akan meningkat Lebih besar id, lebih tinggi keutamaan dan lebih awal ia akan dilaksanakan dalam semua kumpulan, lebih besar id nilai, semakin tinggi keutamaan dan yang pertama dilaksanakan.

3.2 select_type

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL  

Memaparkan jenis setiap klausa pilih dalam pertanyaan yang biasa digunakan jenis select_type termasuk mudah dan primer , subquery , terbitan, kesatuan, hasil kesatuan

  (1)

mudah

(pilihan mudah, tidak menggunakan sebarang pertanyaan rumit seperti kesatuan atau subquery)select_type

 (2)

utama

(Pertanyaan paling luar dalam subkueri, jika pertanyaan mengandungi mana-mana subbahagian kompleks, pilihan paling luar ditandakan sebagai utama)Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL

  (3)

subkueri

(subkueri disertakan dalam senarai pilih atau di mana) Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL

  (4)

diperoleh (daripada Subkueri yang terkandung dalam senarai ditandakan sebagai terbitan . MySQL akan melaksanakan subquery ini secara rekursif dan meletakkan keputusan dalam jadual sementara) Pernyataan pilih kedua atau seterusnya)

  (6)

hasil kesatuan

( Keputusan kesatuan, pilihan kedua dalam pernyataan kesatuan memulakan semua pilihan berikut)

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL

jadual 3.3

Paparkan nama jadual dalam pangkalan data yang diakses dalam langkah ini (paparkan jadual mana data dalam baris ini adalah mengenai jadual).

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQLjenis 3.4


menunjukkan jenis yang digunakan dalam pertanyaan Jenis termasuk semua, indeks, julat, ref, eq_ref, const, sistem, NULL, prestasinya meningkat. secara berurutan.

 ● tablesemua

: Imbasan Jadual Penuh, MySQL akan merentasi keseluruhan jadual untuk mencari baris yang sepadan

type ●

indeks

: Imbasan Indeks Penuh, perbezaan antara indeks dan SEMUA ialah jenis indeks hanya melintasi pokok indeks

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL  ●

julat

: hanya mengambil baris dalam julat tertentu, Gunakan indeks untuk memilih baris

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL ●

ref

: Menunjukkan syarat padanan gabungan jadual di atas, iaitu lajur yang mana atau pemalar digunakan untuk mencari lajur indeks Nilai

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL ●

eq_ref

: sama dengan ref, perbezaannya ialah indeks yang digunakan adalah unik indeks, dan untuk setiap nilai kunci indeks, hanya terdapat satu dalam jadual Pemadanan rekod, secara ringkasnya, ialah menggunakan kunci primer atau kunci unik sebagai keadaan perkaitan dalam sambungan berbilang jadual  ●

const , sistem

: Apabila MySQL mengoptimumkan bahagian tertentu pertanyaan dan menukarnya kepada Pemalar diakses menggunakan jenis ini. Jika kunci utama diletakkan dalam senarai tempat, MySQL boleh menukar pertanyaan kepada pemalar Sistem ialah kes khas jenis const apabila jadual pertanyaan hanya mempunyai satu baris. Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL

 ●

NULL

: MySQL menguraikan pernyataan semasa proses pengoptimuman, tanpa mengakses jadual atau indeks semasa pelaksanaan, seperti memilih nilai minimum daripada lajur indeks Ini boleh dilakukan melalui carian indeks yang berasingan.

3.5 possible_keys

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL  

Menunjukkan satu atau lebih indeks yang mungkin digunakan pada jadual ini. Jika indeks wujud pada medan yang terlibat dalam pertanyaan, indeks akan disenaraikan

tetapi sebenarnya tidak boleh digunakan oleh pertanyaan . (Indeks yang boleh digunakan oleh pertanyaan ini, batal jika tiada indeks)


Kunci 3.6

keyMemaparkan kunci (indeks) yang MySQL benar-benar memutuskan untuk digunakan, yang mesti disertakan dalam kekunci_mungkin. NULL jika tiada indeks dipilih. Untuk memaksa MySQL menggunakan atau mengabaikan indeks pada lajur possible_keys, gunakan force index, use index atau ignore index dalam pertanyaan.


3.7 key_len

key_len mewakili bilangan bait yang digunakan dalam indeks Lajur ini boleh digunakan untuk mengira panjang indeks yang digunakan dalam pertanyaan (nilai yang dipaparkan oleh key_len ialah medan indeks Panjang maksimum yang mungkin bukan panjang sebenar yang digunakan, iaitu key_len dikira berdasarkan definisi jadual, bukan diambil daripada jadual), dalam 不损失精确性的情况下,长度越短越好.

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL


3.8 ref

  refPaparkan lajur indeks yang digunakan, menunjukkan keadaan padanan sambungan jadual di atas, iaitu , lajur atau pemalar yang manakah Digunakan untuk mencari nilai pada lajur indeks

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL


3.9 baris

 rowsAnggaran bilangan baris dalam hasil set, menunjukkan bahawa MySQL berdasarkan jadual Maklumat statistik dan pemilihan indeks, dan anggaran bilangan baris yang perlu dibaca untuk mencari rekod yang diperlukan.

Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL


3.10 Tambahan

  ExtraLajur ini mengandungi butiran penyelesaian pertanyaan MySQL, terdapat situasi berikut:

  Apabila lajur yang diminta semuanya adalah sebahagian daripada indeks yang sama, ini bermakna pelayan MySQL akan menapis baris selepas enjin storan mendapatkannya

 ● Menggunakan sementara bermakna MySQL perlu menggunakan jadual sementara untuk penyimpanan Set hasil biasanya digunakan dalam menyusun dan mengumpulkan pertanyaan kumpulan biasa mengikut; dilengkapkan menggunakan indeks, ia dipanggil " Pengisihan fail"

 ● Menggunakan penimbal gabunganNilai yang diubah menekankan bahawa tiada indeks digunakan semasa mendapatkan syarat gabungan dan penimbal gabungan diperlukan untuk menyimpan hasil perantaraan. Jika nilai ini muncul, perlu diperhatikan bahawa bergantung pada syarat khusus pertanyaan, anda mungkin perlu menambah indeks untuk meningkatkan prestasi.

 ● Mustahil di mana Nilai ini menekankan bahawa pernyataan where tidak akan menghasilkan baris yang layak (hasil yang tidak boleh wujud dengan mengumpul statistik).

 ● Pilih jadual yang dioptimumkan Nilai ini bermakna dengan menggunakan indeks sahaja, pengoptimum boleh mengembalikan hanya satu baris daripada hasil fungsi agregat

 ● Tidak jadual digunakan Pernyataan Query menggunakan daripada dwi atau tidak mengandungi mana-mana daripada klausa

4. Ringkasan

 ● explain tidak akan memberitahu anda maklumat tentang pencetus, prosedur tersimpan atau pengguna Kesan fungsi tersuai pada pertanyaan

 ● explain tidak mempertimbangkan pelbagai Cache

  ● explain tidak boleh memaparkan kerja pengoptimuman yang dilakukan oleh MySQL apabila melaksanakan pertanyaan

  ● explain hanya boleh Explain operasi pilih dan operasi lain hendaklah ditulis semula sebagai pilih untuk melihat pelan pelaksanaan

 ● Beberapa maklumat statistik dianggarkan, bukan nilai tepat

Pembelajaran yang disyorkan:

tutorial video mysql

Atas ialah kandungan terperinci Penjelasan terperinci tentang menerangkan penggunaan untuk pembelajaran MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam