Ben almak için gereken veri yaklaşık 200 satırlar vardır benim veritabanında bir tablo var. Ayrı sorgu tek tek her bir satırda karşı, bir kerede tek bir sorgu hepsini alırken, hiç değilse, verimlilik farkı ne kadar önemli olduğunu?
Sorguları genellikle böylece 1 yerine 200 sorguları yürütme, bir soket üzerinden yapılan havai bir sürü temsil artı RDBMS bir sorgu için satır bir sürü almak için optimize edilmiştir.
1 yerine 200 sorgular, RDBMS veri setlerini başlatmak yapmak sorguyu ayrıştırmak, bir satır getirme, veri setleri, doldurmak ve sonuçlar 200 kat yerine 1 defa göndereceğiz.
Sadece bir sorguyu yürütmek için çok daha iyi.
Ben (sanırım) orada ayrıştırma yükü bir sürü ve sonra da her satır için yapmak yerine hangi vb geri göndermek kadar veriyi paketleme, sorgu yürütme çünkü fark önemli olacağını düşünüyorum.
Çeşitli yaklaşımlar, sonra size karşılaştırabilirsiniz anlamlı istatistikleri var kez hızlı bir test yazmak için genellikle yararlıdır.
Sorgularda k
sabit sorgular daha fazla sayıda karşı bazı sabit sayısı hakkında konuşuyor olsaydı k+k1
daha sorguları daha iyi olduğunu görebilirsiniz. Ben emin bilmiyorum ama birisi böyle bir senaryo ile gelebilir eğer bana sürpriz olmaz nedenle SQL sıradışı tuhaflıklar her türlü sahiptir.
Eğer k
sorgularının olmayan bazı sabit sayısına karşı sorguları bazı sabit dizi bahsediyoruz Ancak n
her zaman sorgular seçeneği sabit sayıda alinmali.
Genellikle tüm satırlar bir kerede bir satır almak kadar çok zaman alacak almak son derece önemli. Yani o zaman daha sonra tüm satırları almak her satırı ayrı bir çok dramatik bir fark 200 saniye (her satır için 1 saniye) alacak alıyorum, 1 saniye sürer 1 saniye (çok yüksek ama resimde için iyi) diyelim. Eğer başlamak için 200 listesini alıyorsanız nerede ve bu saymıyor.
Diğerleri söylediler aynen. RDBMS kerede sizin tüm 200 + + + + + satırları atma ter kırmak olmaz. Eğer şüphe yok zaten her satır kapma için bir döngü var çünkü bir birleştirici dizideki tüm satırları Başlarken de, komut için çok fark olmaz.
Tüm yapmanız gereken size verilen dizi yineleme yapmak bu döngüyü değiştirmek olduğunu [çok küçük çimdik!]
Sonuçları üzerinde yapılması gereken işlem çok varsa ben yerine büyük bir set birden fazla sorgudan az sonuç almak için bunu daha iyi bulduk tek zamandır. Ben kurmak sonuç kırarak sonuç kümesi (artı ilişkili işleme) yaklaşık 40.000 kayıtları kesip başardı. Eğer DB işlem yapmak ve sonuç kümesi boyutunu azaltmak sağlayacak sorgu içine inşa edebilirsiniz şey bir yarar, ama gerçekten tüm satırları gerekiyorsa, sadece onları getir.