Ayrıntılı SQL optimizasyon ipuçları-sıralamadan kaçının

Genel Bakış

Veritabanındaki bazı komutların sonuçları sıraladığını herkes bilir.Veri miktarı büyük olduğunda sıralama çok zaman alabilir. Bugün temel olarak gereksiz sıralamanın nasıl önleneceğini ve SQL yürütme verimliliğini nasıl artıracağımızı tartışıyoruz.

Sıralanacak SQL komutları

Sıralanacak temsili işlemler şunlardır:

GROUP BY maddesi

ORDER BY maddesi

Toplama işlevleri (SUM, COUNT, AVG, MAX, MIN)

DISTINCT

İşlemleri ayarla (UNICON, INTERSECT, EXCEPT)

Pencere işlevleri (RANK, ROW_NUMBER, vb.)

Örnek

İşte örnekleme, birleşim ve farklı için iki örnek.

1. Mümkün olduğunda birleşim yerine tüm birleşim kullanın

TABLE_A'DAN SEÇ * BİRLİĞİ TÜMÜ TABLE_B'DEN SEÇ *;

Sonuçlarda yinelenen verileri umursamıyorsanız veya sonuçlarda yinelenen verilerin olmayacağını önceden biliyorsanız. Sıralama yapılmaması için lütfen birleşim yerine birleşim kullanın.

2. Mümkün olduğunda farklı yerine kullanım vardır

Örnek veriler, bir emtia tablosu ve aşağıda bir satış kaydı tablosu olduğunu göstermektedir.

Öğeler:

Satış Geçmişi:

Gereksinimler: Satış kayıtları olan ürünleri bulun.

İn kullanılarak uygulanabilir, ancak in alt sorgular oluşturacağından, birleştirme sorguları kullanmak kadar verimli değildir.

DISTINCT I.item_no SEÇİN Öğelerden I INNER JOIN SalesHistory S AÇIK I.item_no = S.item_no;

Birden çoğa bir sorgu olduğu için, yinelenen kayıtlar oluşturulur ve tüm yinelenen kayıtlar DISTINCT kullanılarak filtrelenir.

Ancak daha iyi bir yaklaşım, var yöntemini kullanmaktır:

DISTINCT i SEÇİN I.item_no Öğelerden I NEREDE VAR ( SalesHistory S'DEN SEÇ * NEREDE I.item_no = S.item_no );

Not: Var olan sorgu sıralanmayacağından ve var olanın kullanımı bağlantı kullanmak kadar etkilidir.

sonuç olarak

Bugün temel olarak SQL'de gereksiz sıralamadan nasıl kaçınılacağını tartıştım.İki örnekle açıklayacağım: Birleşim yerine tüm birleşimi kullanmaya çalışın ve farklı yerine var.

Daha sonra daha fazla DBA içeriği paylaşılacak, ilgilenen arkadaşlar takip edebilir!

2018'de kutlamak ister misiniz? Bu cep telefonlarını kontrol etmelisiniz
önceki
Santralin ne olduğunu biliyor musun? Termik santrallerin çalışma prensibini anlamak için birkaç resim!
Sonraki
İPhone 2G'den iPhone8'e, gövde tamamen demonte edilir ve iç yapı saniyeler içinde 2 resim değiştirir!
Cui Yongyuan, Fan Bingbing ile ağlıyor, bağışladığım kişi hakkında duygularını ifade ediyor, sanki başka bir şey ifade ediyormuş
Waymo şiddetli penetrasyon kılavuzu: tamamen kendi kendine giden arızalı bir araba nasıl bastırılır
Uçurtma pateni: Karda ve mavi gökyüzünde kılıç ustası
Ayrıntılı linux sistemi mutt posta gönderme yapılandırması
İOS10.2.1 jailbreak aracının yeni sürümü yayınlandı ve gizli bir sürpriz var!
Jia Nailiangın sanatçıları arkadaşlarının eşyalarını çaldı ve Chen Xuedong ile oynadı, Star Way havalı olabilir
Bana petrol üreten ülke demeyi bırak! 57 yıl önce katılan Katar, aniden "gruptan çekildiğini" duyurdu. OPEC bölünecek mi?
iOS11.1 beta3 burada ve önemli güvenlik açıkları giderildi!
Elektrik endüstrisindeki yaklaşık 10.000 İngilizce kelime çok kapsamlı bir şekilde özetlenmiştir Kendinizi geliştirmek ister misiniz?
Zheng Shuang ve Zhang Heng, Amerika Birleşik Devletleri'nde tesadüfen karşılandı. İkisi mutlu bir şekilde el ele tutuştu ve tatlı bir ilişki yaşadı ve doğru aşkla tanıştı
Sekiz nesil çekirdek savaş terminali yükseltmesi! Alienware Aurora R7 incelemesi
To Top