Bir sorgu, veritabanından belirli verileri ister. SQL'de bir sorgu, sütunları belirtmek için SELECT, tabloları belirtmek için FROM ve satırları filtrelemek için WHERE kullanır. JOIN tabloları birleştirir. GROUP BY toplama işlemi yapar. ORDER BY sıralama işlemi yapar. Veritabanı sorguyu ayrıştırır, bir yürütme stratejisi planlar ve sonuçları döndürür. Aynı soru birçok farklı şekilde sorulabilir ve bazı yöntemler diğerlerinden çok daha hızlıdır.
Sorgu performansı birçok faktöre bağlıdır. İndeksler, filtrelenmiş sütunlardaki aramaları hızlandırır. Sorgu planlayıcısı, veriler hakkındaki istatistiklere dayanarak farklı yürütme stratejileri arasında seçim yapar. Güncel olmayan istatistikler, kötü planlara yol açar. İndeksleri etkili bir şekilde kullanan bir sorgu yazmak bir beceridir. WHERE yan tümcesinde indekslenmiş bir sütuna uygulanan bir fonksiyon, indeksin kullanılmasını engeller. Yalnızca birkaç sütuna ihtiyaç duyulduğunda tüm sütunları seçen bir sorgu, bant genişliğini ve belleği israf eder. Her satır için bir kez çalışan bir alt sorgu yavaştır. Aynı mantık bir birleştirme işleminde hızlıdır. Sorgu optimizasyonu kısmen sanat, kısmen bilimdir. Veritabanı araçlar sağlar: EXPLAIN planları, sorgu profilleri ve performans sayaçları. Bu araçları okumak pratik gerektirir. Küçük bir veri kümesinde milisaniyeler içinde çalışan bir sorgu, büyük bir veri kümesinde dakikalar sürebilir. Fark genellikle donanımdan değil, plandan kaynaklanır.
Sorgu bileşenleri
- SELECT — döndürülecek sütunlar
- FROM — sorgulanacak tablolar
- NEREDE — satır filtreleri
- BİRLEŞTİR — tabloları birleştir
- GRUPLANDIRMA — satırları bir araya getir
- ORDER BY — sonuçları sırala
Sorgu bir sorudur. Veritabanı bu soruyu yanıtlar. Yanıtın kalitesi, sorunun nasıl sorulduğuna bağlıdır.
Comments
No comments yet. Be the first to share a thought.
Leave a comment