Bölümler Arasında Verimli Sorgulama
Bölüm budamadan yararlanan sorgular yazın ve budamayı EXPLAIN ile doğrulayın.
Bölümler Arasında Verimli Sorgulama, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
Bölümleme Anahtarına Göre Filtreleme
Budama yalnızca WHERE koşulu bölümleme anahtarını içerdiğinde çalışır:
-- Prunes (uses date partitioning):
SELECT * FROM events WHERE ts >= '2024-03-01' AND ts < '2024-04-01';
-- No pruning — scans all partitions:
SELECT * FROM events WHERE user_id = 42;Bileşik Budama
Planlayıcı, çok düzeyli bölümlenmiş tablolarda birden fazla anahtara göre budama yapabilir:
SELECT * FROM events
WHERE ts >= '2024-03-01' AND ts < '2024-04-01'
AND user_id = 42;
-- Prunes by date AND by hash partition.EXPLAIN Budamayı Gösterir
Budamanın gerçekleştiğini doğrulamak için planı inceleyin:
EXPLAIN SELECT * FROM events WHERE ts >= '2024-03-01' AND ts < '2024-04-01';
-- Append
-- -> Seq Scan on events_2024_q1
-- Only Q1 partition shown; others pruned.Kısıt Dışlaması ve Bölüm Budaması
Modern PG varsayılan olarak hızlı "bölüm budaması" kullanır. Daha eski "kısıt dışlaması" daha yavaştı; enable_partition_pruning = on ayarının etkin olduğundan emin olun.
Çalışma Zamanında Budama
Parametreli sorgularda bile (PREPARE), PG çalışma zamanında budama yapabilir:
PREPARE p(timestamptz, timestamptz) AS
SELECT * FROM events WHERE ts >= $1 AND ts < $2;
EXECUTE p('2024-03-01', '2024-04-01');
-- Pruning happens at execute, not at parse.Bölümler Arası İndeksler
İndeksler bölümlere aktarılır. İndekslenmiş sütun üzerindeki bir sorgu tüm bölümlerde çalışır; ancak planlayıcı her bölümün indeksini ayrı ayrı tarar.
Bölümler Arası Toplamalar
Bölümleme anahtarına göre GROUP BY en fazla faydayı sağlar. Diğer sütunlara göre GROUP BY her bölümü tarar.
Bölüm Başına Paralel Çalıştırma
PostgreSQL, bölümlerdeki taramaları paralel olarak çalıştırabilir (PG 11+):
SET max_parallel_workers_per_gather = 4;
EXPLAIN SELECT COUNT(*) FROM events;
-- Parallel Append over partitions.Bölümlenmiş Tablolar Arasında Birleştirmeler
Her iki bölümlenmiş tablo da bölümleme anahtarını paylaşıyorsa "bölüm bazlı birleştirme" daha hızlıdır; her bölüm bağımsız olarak birleştirilir:
SET enable_partitionwise_join = on;
-- Now PG can join events to event_metrics partition-by-partition.Yaygın Hatalardan Kaçınma
- WHERE içinde bölümleme anahtarına işlev uygulamayın; bu, budamayı devre dışı bırakır
- Sorgularınıza bölümleme anahtarını eklemeyi unutmayın
- Binlerce küçük bölüm oluşturmayın; planlama ek yükü baskın hâle gelir
Makul Bölüm Sayıları
Binlerce yerine onlarca ila düşük yüzlerce bölüm hedefleyin. Her bölüm planlama sırasında ek yük oluşturur. Çok ince ayrıntı düzeyine ihtiyaç duyuyorsanız alt bölümleme kullanın.
Bölüm Başına Bakım
VACUUM, ANALYZE ve REINDEX bölüm başına çalışır ve paralel olarak yürütülebilir. Makul sınırlar içinde bölüm sayınız arttıkça kazanım da büyür.
Özet
Bölümleme, bölümleme anahtarına göre filtrelenen sorguları ödüllendirir.
- Bölümleme anahtarına göre WHERE → budama
- EXPLAIN ile doğrulayın
- Uyumlu birleştirmeler için bölüm bazlı birleştirmeyi etkinleştirin
- Aşırı bölümleme yapmayın
Hızlı Kontrol
events tablosunu ts sütununa göre aylık olarak bölümlendirdiniz. Hangi sorgu bölüm budamasından yararlanır?
Sıkça Sorulan Sorular
“Bölümler Arasında Verimli Sorgulama” dersi ücretsiz mi?
Evet — “Bölümler Arasında Verimli Sorgulama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“Bölümler Arasında Verimli Sorgulama” dersinde ne öğreneceğim?
Bölüm budamadan yararlanan sorgular yazın ve budamayı EXPLAIN ile doğrulayın. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Bölümler Arasında Verimli Sorgulama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Neden Bölümlendirme: Budama ve Bakım
- Aralık, Liste ve Hash Bölümlendirmesi
- Bölümleri Ayırma ve Ekleme
- Bölümler Arasında Verimli Sorgulama