0Pricing
SQL Academy · Ders

Neden Bölümlendirme: Budama ve Bakım

Bölümlendirmenin kazanımlarını anlayın: sorgu budama, daha hızlı VACUUM ve daha kolay arşivleme.

Neden Bölümlendirme: Budama ve Bakım, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 1. 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ümlendirme Nedir?

Tek bir mantıksal tabloyu, her biri satırların bir alt kümesini tutan birçok fiziksel tabloya (bölüme) ayırmaktır. Sorgular yalnızca ilgili bölümleri tarar.

Neden Kullanmalı?

Büyük tablolar şu sorunlara yol açar:

  • Dizinler çok büyür ve aramalar yavaşlar
  • VACUUM saatler sürer
  • Yedeklemeler yavaştır
  • Bazı sorgular gereksiz tarama yapar

Bölümlendirme bu dört sorunun da üstesinden gelir.

Bölüm Budama

Planlayıcı, bir WHERE koşuluyla eşleşemeyecek bölümleri SKIP edebilir:

EXPLAIN SELECT * FROM events
WHERE ts >= '2024-03-01' AND ts < '2024-04-01';
-- Only March partition scanned; older partitions skipped.
-- Plan rows: 1M, not 100B.

Ne Zaman Bölümlendirilmeli

Şu durumlarda bölümlendirme yapın:

  • Tablo 100+ GB büyüklüğündeyse
  • Doğal bir bölüm anahtarınız varsa (tarih, kiracı, bölge)
  • Çoğu sorgu bu anahtara göre filtreleme yapıyorsa
  • Eski veriler arşivlenebiliyor veya kaldırılabiliyorsa

Ne Zaman Bölümlendirme Yapılmamalı

Sırf kulağa hoş geliyor diye bölümlendirme yapmayın:

  • Birkaç GB'den küçük tablolar bundan yararlanmaz
  • Sorgular bölüm anahtarına göre filtreleme yapmıyorsa NO budama yapılır
  • Operasyonel karmaşıklık ekler (bölümlerin yönetimi)

Bölümlendirme Stratejileri

PostgreSQL üç stratejiyi destekler:

  • Aralık — bölümler değer aralıklarını kapsar (tarihler, kimlikler)
  • Liste — bölümler belirli değerleri tutar (ülkeler, kiracılar)
  • Karma — eşit dağılım için modüler karma kullanılır

Ucuz Kaldırma

Bir bölümü kaldırmak anında tamamlanır; satırlar tek tek silinmez:

DROP TABLE events_2023;
-- 100GB gone in milliseconds, no VACUUM aftermath.

Daha Kolay Bakım

VACUUM, REINDEX ve ANALYZE bölüm başına çalışır. Bakım aralıkları, tek ve dev bir toplu işlem gerektirmek yerine bölümler arasına sığdırılabilir.

Her Bölüm için Daha Küçük Dizinler

Her bölümün kendi dizinleri vardır. 1GB'lık bir bölümdeki B-tree, 1TB'lık bir bölüme kıyasla daha az düzeye sahiptir; bu nedenle aramalar daha hızlıdır.

Bölümlendirme Bir Araçtır, Sihirli Değnek Değil

Ücretsiz bir performans artışı elde etmezsiniz; bölüm anahtarına göre filtreleme yapan sorgular için budama ve daha kolay bakım elde edersiniz. Bunlar geçerli değilse yalnızca karmaşıklık eklersiniz.

PostgreSQL Yerel (Bildirimsel) Bölümlendirme

PG 10'dan beri kullanılabilir. Her bölüm gerçek bir tablodur:

CREATE TABLE events (
  id BIGSERIAL,
  ts TIMESTAMPTZ NOT NULL,
  user_id BIGINT,
  data JSONB
) PARTITION BY RANGE (ts);

CREATE TABLE events_2024_01 PARTITION OF events
  FOR VALUES FROM ('2024-01-01') TO ('2024-02-01');

PG10 Öncesi: Kalıtımla Bölümlendirme

Eski sistemlerde tablo kalıtımı ve tetikleyiciler kullanılır. Yeni kodlarda bundan kaçının; bildirimsel bölümlendirme daha basit ve daha hızlıdır.

Özet

Bölümlendirme, büyük, zaman aralıklarına veya kiracı segmentlerine ayrılmış tablolarda çok etkilidir.

  • Budama, ilgisiz bölümleri atlar
  • Bölüm başına bakım daha hızlıdır
  • DROP TABLE, 100GB büyüklüğündeki DELETE işleminin yerini alır
  • Sihirli bir çözüm değildir; yalnızca sorgular bölüm anahtarıyla eşleşirse yardımcı olur

Hızlı Kontrol

Bir tabloyu aya göre bölümlendiriyor ve SELECT * FROM events WHERE country = 'US' sorgusunu tarih filtresi olmadan çalıştırıyorsunuz. Bölümlendirme yardımcı olur mu?

Sıkça Sorulan Sorular

“Neden Bölümlendirme: Budama ve Bakım” dersi ücretsiz mi?

Evet — “Neden Bölümlendirme: Budama ve Bakım” 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.

“Neden Bölümlendirme: Budama ve Bakım” dersinde ne öğreneceğim?

Bölümlendirmenin kazanımlarını anlayın: sorgu budama, daha hızlı VACUUM ve daha kolay arşivleme. 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 1. dersidir.

“Neden Bölümlendirme: Budama ve Bakım” 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

  1. Neden Bölümlendirme: Budama ve Bakım
  2. Aralık, Liste ve Hash Bölümlendirmesi
  3. Bölümleri Ayırma ve Ekleme
  4. Bölümler Arasında Verimli Sorgulama
← SQL Academy Sayfasına Dön