2010-10-20 28 views
10

Sendikanın birden fazla sorgu çalıştırmaktansa daha iyi olduğunu bilmek isterim.mysql union vs çoklu sorgular

Öyleyse, birden çok sorgunun daha hızlı veya başka nedenlerle tercih edileceği zamanlar var mı?

+1

neden bir oy kullanma? – Yehosef

cevap

9

UNION ALL kullanıyorsanız ve çıktıyı sıralamıyorsanız, UNION performansı, birden çok ayrı sorgunun performansı ile aynı veya daha az aynı olmalıdır. birlikte. Verileri sıralarsanız, açıkçası bazı yükleri dayatıyorsunuz (muhtemelen uygulamanızda sıraladığınızdan daha az olsa da). ALL anahtar kelimesini çıkarırsanız, MySQL sonuçlarınızı DISTINCT ile ilgili ekstra işi yapar. Yine, bu, muhtemelen kendiniz yapmaktan daha az olsa da, ek yükü dayatıyor.

0

"Daha iyi" olup olmadığını soruyorsunuz - "Performans bilgisine" atıfta bulunduğunuzu varsayalım?

Hız etkisi en azsa, kodunuzu daha okunaklı tutmak için birden fazla sorguyu kullanmak isteyebilirsiniz; Birden fazla sorgu ile uğraşmak yerine, farklı şeyler yapmak, tek bir birliktelik içinde.

Kullanım durumuna bağlı olarak kesin. Ancak okunabilir ve anlaşılır bir kod, uzun vadede daha büyük bir projede değerinde olabilir

+0

Teşekkürler - Evet, demek istediğim daha performanslı. Kodun okunabilirliği gerçekten bir endişe değil (benim için ..) çünkü sorguları ayrı tutabiliyorsunuz ve kod seviyesinde "UNION" söz dizimi ile birleştirilebiliyorsunuz. – Yehosef