Rumah >pangkalan data >tutorial mysql >Apakah prinsip penggunaan MySQL Join?

Apakah prinsip penggunaan MySQL Join?

PHPz
PHPzke hadapan
2023-05-26 10:07:171288semak imbas

    Taip sertai

    • sambung kiri, dengan jadual kiri sebagai jadual pemanduan dan jadual kiri sebagai asas set keputusan, sertai kanan Data dalam jadual ditambah pada set hasil

    Apakah prinsip penggunaan MySQL Join?

    • cantum kanan, dengan jadual kanan sebagai jadual pemanduan dan jadual kanan sebagai asas Set hasil, sambungkan data dari jadual kiri ke set hasil

    Apakah prinsip penggunaan MySQL Join?

    • inner join, set hasil mengambil dua jadual Persimpangan

    Apakah prinsip penggunaan MySQL Join?

    • cantum penuh, set hasil adalah gabungan kedua-duanya jadual

    • mysql tidak mempunyai gabungan penuh, kesatuan menggantikan

      Perbezaan antara kesatuan dan kesatuan semua ialah kesatuan akan mengalih keluar pendua

    Apakah prinsip penggunaan MySQL Join?

    • cross join Cartesian product

    • Jika keadaan di mana tidak digunakan, set keputusan adalah hasil daripada dua baris jadual yang berkaitan

      Perbezaan antara dan ialah,Apabila cantuman silang mencipta set hasil, set hasil akan ditapis mengikut syarat

    • straight_join

    • Nyatakan jadual pemandu dengan ketat mengikut susunan SQL , Jadual kiri ialah pemandu

    Prinsip gabungan

    Ayat ini boleh ditulis semula seperti ini: intipatinya boleh difahami sebagai operasi gelung bersarang , di mana gelung luar untuk memacu jadual, dan gelung untuk dalam ialah jadual terdorong. Ia boleh dibahagikan kepada tiga algoritma mengikut strategi menyambung data yang dikarang.

    Simpe Nested-Loop Join

    • Contohnya, jika terdapat jadual A dan jadual B, jika kedua-dua jadual JOIN, syarat sambungan jadual A akan menjadi ditambah satu demi satu ke jadual B. Gelung jadual, memadankan ID yang sama dalam jadual A dan jadual B dimasukkan ke dalam set hasil Kecekapan ini adalah yang paling rendah.

    Index Nested-Loop Join

    • Proses pelaksanaan (imbasan cakera)

    • Dari jadual t1 Baca baris data R;

      Dari baris data R, keluarkan medan a ke dalam jadual t2 dan lakukan carian pepohon

      keluar medan yang memenuhi syarat dalam Jadual t2 Baris, membentuk baris dengan R sebagai sebahagian daripada set hasil;

      Untuk setiap baris R, cari dalam jadual t2 berdasarkan medan a, menggunakan proses carian pokok.
    • Block Nested-Loop Join

    mysql menggunakan penimbal yang dipanggil
      join buffer
    • r untuk mengurangkan bilangan gelung , penimbal ini ialah 256KB secara lalai Anda boleh melihatnya melalui arahan tunjukkan pembolehubah seperti 'join_%'

      Kaedah khusus adalah untuk menanyakan lajur yang layak dalam jadual pertama pada satu masa penimbal. , kemudian rentas jadual kedua sekali, bandingkan dengan semua nilai dalam penimbal satu demi satu, dan tambahkan hasil perbandingan pada set hasil
    • Hanya apabila JOIN jenis adalah SEMUA, Penampan gabungan hanya digunakan apabila indeks, rang atau index_merge digunakan Anda boleh menyemak jenis pertanyaan SQL melalui explain.
    • Pengoptimuman Sertai

    Untuk mengoptimumkan algoritma cantuman, algoritma cantuman gelung bersarang Indeks digunakan untuk mencipta indeks medan pada medan sambungan
    • Gunakan jadual dengan volum data kecil untuk memacu jadual dengan volum data besar
    • Tingkatkan saiz penimbal cantum (semakin banyak data dicache pada satu masa, Kemudian bilangan gelung dalam jadual luar akan menjadi lebih sedikit)
    • Beri perhatian kepada penukaran tersirat dan pengekodan aksara medan sambungan untuk mengelakkan kegagalan indeks

    Atas ialah kandungan terperinci Apakah prinsip penggunaan MySQL Join?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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