BiSoft Logo

Hizmetler

Ürünler

Ortaklık

Blog

Turkish

Genel

MySQL'de Min/Max ve Gruplama Sorgularının Optimizasyonu

Veritabanında min/maks sorguları optimize etmek için dizinleri kullanabilirsiniz. Veriler dizinler üzerinde sıralandığından, dizinler verilerin min veya maks değerini döndürmek için kullanılabilir.

Örneğin, MySQL'deki aşağıdaki sorguda, product_orders tablosundan maksimum sipariş tarihini seçmek istiyorsunuz. MYSQL optimizer önce tüm ürün siparişleri tablosunu tarar, ardından maksimum sipariş tarihini bulmak için Aggregate max operatörünü uygular. Bu plan, tablonuz büyükse çok verimsizdir ve maliyet yaklaşık 1.650.000'dır.


Dizinsiz Maksimum Sorgu Yürütme Planı


Ancak sipariş_tarihi üzerinde bir dizin oluşturursanız, yeni plan aşağıdaki gibi olacaktır. Çok hızlı olduğundan maliyet sıfırdır ve sorgu anında döner.


Dizin Oluşturduktan Sonra Maksimum Sorgu Yürütme Planı


Bu örnekler kolaydır, peki ya "group by" devreye girerse? Örneğin, her ülke için maksimum sipariş tarihini sorgulamak isterseniz. Sorgu ve yürütme planı aşağıdaki gibi olacaktır. Maliyet 546.755, bu da oldukça yüksektir.


Gruplama ile Dizinsiz Maksimum Sorgu Yürütme Planı

Peki ya ülke_id, sipariş_tarihi bileşik dizini oluşturursanız? O zaman sorgunun maliyeti 546.755'ten 138'e düşer. Bu, yaklaşık 4000 kat daha hızlı anlamına gelir.



Peki, ürün7'nin satıldığı her ülke için maksimum tarih ne olacak diye sormak isterseniz.


Ürün7'nin satıldığı her ülke için maksimum tarih


Hâlâ dizin kullanılıyor. Ancak bu verimli mi? Hayır. Maliyet yüksektir ve tabloda her sıra için yürütme planında ürün7 için filtreleme yaşanır ki bu çok verimsizdir. Önemli olan, bir planın dizin kullanması, performans açısından uygun olduğu anlamına gelmez.

Optimal dizin, product_name, ülke_id, sipariş_tarihi bileşik dizini olacaktır. Ve sütunların sırası önemlidir. Önce where koşulundaki filtrelenmiş sütunlar, ardından gruplama ve son olarak sıralama sütunları olmalıdır. Dizin oluşturduktan sonra, maliyet 660496'dan 3124'e düşer. Bu, 200 kat daha hızlıdır.


Ürün7 satıldığı her ülke için uygun dizin oluşturduktan sonra sorgu planı

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

İş büyümesi ve verimliliği için akıllı veri çözümleri

Şirket

Hizmetler

Ürün

Vispeahen

BFM

BFM4Patroni

Daha fazla içerik