Genel
MySQL'de İç İçe Döngü mü Hash Birleştirme mi?
MySSQL 8'e kadar MySQL'de hash join algoritması yoktur. İki tablo birleştiğinde birinin indeksleri varsa genellikle aşağıda gösterildiği gibi iç içe döngü tercih edilir. Örnekte, product_order 5.000.000 satır ve product_customers 1000 satır içermektedir. Örnekteki MySQL sürüm 9.2 iç içe döngü birleştirme yöntemini seçmiştir, maliyet 2.28+e6 ve gerçek süre 14.632 ms'dir.
Tam boyutta resmi görüntülemek için enter'a basın veya tıklayın

İç İçe Döngü Birleşimi Sorgu Planı
MySql'i, iç içe döngü yerine hash birleşimini kullanmaya zorlarsak ne olur. Hash birleşimini zorlamak için sorguda aşağıda görülen resim gibi no_index optimizer ipucu kullanılır. Maliyet 2 kat yüksek olmasına rağmen, gerçek süre 14.632 ms'den 7.484'e düşer ki bu, hash birleşimi kullanılırken iç içe döngüye göre 2 kat daha iyidir.
Tam boyutta resmi görüntülemek için enter'a basın veya tıklayın

Hash Birleşim Planı
İki tabloyu birleştirirseniz ve biri çok az filtrelenmiş satır içermeyen büyük bir tablo ise sorgunuzu optimize etmek için hash birleşimini deneyebilirsiniz.






