select * vs sütununu seçin
eğer sadece 2/3 sütun ve seçin sorgu bu sütunlar sağlamak yerine* *0 ben sorgu. daha az g/Ç veya daha fazla bellek ile ilgili herhangi bir performans düşüşü var mı ??
Ağ Yükü eğer bir ihtiyaç olmadan seçin * yaparsam mevcut olabilir.
Ama bir seçme işleminde veritabanı motoru her zaman diskten atom demet çeker mi ? ya da sadece bu sütunları seçin ve İşlemi talep çeker.
Eğer her zaman bir demet çekerse O yükü aynıdır.
aynı zamanda. bir demet için istenen sütunlar sıyırma için bir bellek tüketimi olabilir. bir demet çeker.
Dava someColumn daha fazla bellek seçin daha havai olacak seçin Bu . eğer öyleyse
CEVAP
Asla (asla) üretim kodu SELECT *
kullanmanız gereken çeşitli nedenleri vardır:
veritabanınızın istiyorum ne gibi herhangi bir ipucu vermiyorsun beri, ilk o tablo sütunları tespit etmek amacıyla, tablo tanımını kontrol etmek gerekir. Arama biraz zaman mal olacak - çok değil tek bir sorguda - ama zamanla ekler
eğer sütun tek 2/3 ihtiyacın olursa, 1/3 disk alınıyor olması gerekir ve ağ üzerinden gönderme olan çok fazla veri seçiyorsun
eğer başlatmak için kullanır bazı yönleri verileri, örneğin sipariş döndürülen sütunlar, sen-ebil almak bir kötü sürpriz sonra tablo yeniden ve yeni sütunlar eklenir (veya mevcut olanları kaldırıldı)
SQL Server (emin değilim diğer veritabanları), eğer ihtiyacınız olan bir alt sütun, her zaman bir şansı olmayan bir kümelenmiş dizin olabilir bu isteği kapsayan (içeren tüm sütunları gerekli).
SELECT *
, bu olasılık üzerine doğru gelen vazgeçiyorsun ile yola çıkıyoruz. Bu durumda, veri dizin sayfaları varsa, bu gerekli tüm sütunlar içeriyorsa () ve böylece disk G/Ç alınmış olurvebellek yüküSELECT *....
bir sorgu yapmaya kıyasla çok daha az olurdu.
Evet, zaman alır biraz daha fazla yazarak başlangıçta (araçlar gibi SQL Prompt SQL Sunucu bile yardım yok) - ama bu çok olduğu bir durumda, kural olmadan herhangi bir özel durum: şimdiye kadar SEÇMEK * üretim kodu.HİÇ.
Daha hızlı/iyi ki? SEÇİN * SELECT sütu...
Nasıl bir kayıt (select top 1) Her kay...
SERİ Farklı Anonim Türleri ile Seçin...
jQuery Sıralanabilir - ve Birden fazla...
Terminal içinde nasıl görüntüleneceğin...