Bölümleri Ayırma ve Ekleme
Okumaları engellemeden bölümleri sisteme alıp çıkarmak için ATTACH PARTITION ve DETACH PARTITION kullanın.
Bölümleri Ayırma ve Ekleme, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 3. 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.
Neden DETACH?
Eski bir bölümü verileri silmeden canlı tablodan çıkarabilirsiniz. Yaygın kullanım alanları:
- Ayrı bir veritabanına arşivleme
- Daha ucuz depolamaya taşıma
- Yedekleme ve ardından silme düzeni
DETACH PARTITION
Bölümü üst tablodan çıkarır ancak verileri korur:
ALTER TABLE events DETACH PARTITION events_2022;
-- events_2022 is now a standalone table.
-- Queries on events no longer see those rows.DETACH CONCURRENTLY (PG 14+)
ACCESS EXCLUSIVE kilidinden kaçınır:
ALTER TABLE events DETACH PARTITION events_2022 CONCURRENTLY;
-- Two-step: detach pending, then finalize. App writes continue.Çıkarılan Bölümlerin Arşivlenmesi
Çıkardıktan sonra:
-- Backup with pg_dump:
pg_dump --table=events_2022 mydb > events_2022.sql
-- Move to a cold-storage Postgres or S3:
psql cold_db < events_2022.sql
-- Then drop from primary:
DROP TABLE events_2022;ATTACH PARTITION
Mevcut bir tabloyu yeni bir bölüm olarak ekler:
CREATE TABLE events_2025 (LIKE events INCLUDING ALL);
-- Load data with COPY or INSERT ... SELECT
ALTER TABLE events ATTACH PARTITION events_2025
FOR VALUES FROM ('2025-01-01') TO ('2026-01-01');ATTACH Sırasında Doğrulama
ATTACH, her satırın FOR VALUES sınırlarına uyduğunu doğrulamak için yeni bölümü tarar. ATTACH öncesinde eşleşen bir CHECK kısıtı tanımlayarak bu taramadan kaçınabilirsiniz:
ALTER TABLE events_2025
ADD CONSTRAINT events_2025_ts_check
CHECK (ts >= '2025-01-01' AND ts < '2026-01-01');
ALTER TABLE events ATTACH PARTITION events_2025
FOR VALUES FROM ('2025-01-01') TO ('2026-01-01');
-- No scan needed; PG trusts the CHECK.Hareketli Zaman Pencereleri
Haftalık veya aylık olarak ilerleyin: sonraki bölümü önceden oluşturun, en eskisini silin:
BEGIN;
CREATE TABLE events_2024_q4 PARTITION OF events FOR VALUES FROM ('2024-10-01') TO ('2025-01-01');
DROP TABLE events_2023_q4;
COMMIT;Depolama Katmanlarını Değiştirme
Bir bölümü çıkarın, ALTER TABLE … SET TABLESPACE ile daha yavaş depolamaya taşıyın ve yeniden ekleyin:
ALTER TABLE events DETACH PARTITION events_2022;
ALTER TABLE events_2022 SET TABLESPACE archive_disk;
ALTER TABLE events ATTACH PARTITION events_2022 FOR VALUES FROM ('2022-01-01') TO ('2023-01-01');Eklenen Bölümlerde İndeksler
Bir bölümün eklenebilmesi için indekslerinin üst tablonunkilerle eşleşmesi gerekir. PG 14 ve sonraki sürümlerde ATTACH sırasında eksik indeksleri otomatik olarak oluşturabilir.
Atomik Bölüm Değişimi
Bölüm içeriklerini atomik olarak değiştirmek için DETACH + ATTACH işlemlerini bir işlem içinde sarın. Yaygın bir düzen şöyledir: "yeni bölümü çevrimdışı oluşturun, ardından değiştirin":
BEGIN;
ALTER TABLE events DETACH PARTITION events_2024_q1;
ALTER TABLE events ATTACH PARTITION events_2024_q1_new
FOR VALUES FROM ...;
COMMIT;Performans
DETACH ve ATTACH katalog işlemleridir; kısıtlar önceden ayarlandığında anında tamamlanır. CHECK kısıtı yöntemi büyük ölçeklerde çok önemlidir.
Özet
Çıkarma ve ekleme, bölümlemenin çevrimiçi bakım için gizli silahıdır.
- Çevrimiçi kaldırma için DETACH PARTITION CONCURRENTLY
- ATTACH öncesi CHECK kısıtı doğrulama taramasını atlar
- Değiştirme, arşivleme ve depolama katmanı taşıma
- BEGIN/COMMIT ile atomik işlem
Hızlı Kontrol
ATTACH PARTITION çalıştırılırken tüm tablo taramasından nasıl kaçınırsınız?
Sıkça Sorulan Sorular
“Bölümleri Ayırma ve Ekleme” dersi ücretsiz mi?
Evet — “Bölümleri Ayırma ve Ekleme” 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ümleri Ayırma ve Ekleme” dersinde ne öğreneceğim?
Okumaları engellemeden bölümleri sisteme alıp çıkarmak için ATTACH PARTITION ve DETACH PARTITION kullanı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 3. dersidir.
“Bölümleri Ayırma ve Ekleme” 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