Ana içeriğe geç

Partitioning

Bölümleme

Türkçe karşılığı
tablo bölümleme
Okunuşu
partişıning

Günlük kullanımda iki ad da yaygın.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/partitioning

Kısaca

Partitioning (bölümleme), büyük bir tabloyu tarih aralığı gibi bir kurala göre partition'lara böler; sorgular ilgisiz veriyi atlar, eski veri kolayca silinir.

Veritabanında partitioning nedir?

Milyarlarca satır sipariş ya da log içeren bir tablo sorgulamak için yavaşlar ve bakımı zahmetli hâle gelir. Partitioning ile veritabanı onu tek bir adın arkasında birçok küçük tablo olarak saklar, örneğin her ay için bir partition. Uygulamalar yine tek bir orders tablosunu sorgular; satırların hangi partition'larda olduğuna veritabanı karar verir.

Kural, partition anahtarıdır. Range partitioning tarihler gibi aralıklar kullanır; list partitioning ülke kodları gibi açık değerler; hash partitioning de satırları anahtarın hash'ine göre eşit dağıtır. Bir sorgu bu anahtara göre filtrelediğinde veritabanı, yalnızca eşleşen satırları içerebilecek partition'ları okumak için partition pruning kullanır.

Partitioning veri yönetimini de ucuzlatır. Geçen yılın partition'ını silmek, milyonlarca satırı silmeye kıyasla anında olur; indeksler küçük kalır ve bakım partition partition yapılabilir. PostgreSQL, MySQL, SQL Server ve Oracle'ın hepsi bunu destekler; analitik veri ambarları da büyük tabloları doğal olarak tarihe göre bölümler.

Sık yapılan bir yanlış, partitioning ile sharding'in aynı şey olduğunu düşünmektir. Partitioning genellikle bir tabloyu tek bir veritabanı sunucusu içinde böler; sharding ise veriyi birkaç sunucuya dağıtır. Partitioning, partition anahtarına göre filtrelemeyen ve her partition'ı taraması gerekebilen sorgulara da yardım etmez.

Önemli noktalar

  • Partitioning, büyük bir tabloyu tek bir adın arkasında daha küçük partition'lara böler.
  • Range, list ve hash partitioning, partition anahtarı üzerinde farklı kurallar kullanır.
  • Partition pruning, sorguların yalnızca ilgili partition'ları okumasını sağlar.
  • Eski veri bir seferde bütün bir partition olarak silinebilir.
  • Partitioning tek bir sunucu içindedir; sharding veriyi sunucular arasında dağıtır.

Örnek

PostgreSQL'de aylara göre range partitioningsql
CREATE TABLE events (
    id         bigint      NOT NULL,
    created_at timestamptz NOT NULL,
    payload    jsonb
) PARTITION BY RANGE (created_at);

CREATE TABLE events_2026_09 PARTITION OF events
    FOR VALUES FROM ('2026-09-01') TO ('2026-10-01');
CREATE TABLE events_2026_10 PARTITION OF events
    FOR VALUES FROM ('2026-10-01') TO ('2026-11-01');

-- Only events_2026_10 is scanned (partition pruning)
SELECT count(*) FROM events WHERE created_at >= '2026-10-01';

-- Removing a month of data is instant
DROP TABLE events_2026_09;

Sık sorulan sorular

Partitioning ile sharding arasındaki fark nedir?

Partitioning bir tabloyu, genellikle tek bir veritabanı sunucusunun içinde parçalara böler. Sharding ise veriyi birden çok sunucuya dağıtır; böylece her biri verinin yalnızca bir kısmını tutar. Sharding, makineler arasında yapılan bir yatay bölümleme türüdür.

Bir tabloyu ne zaman bölümlemeliyim?

Tablo çok büyük olduğunda, sorgular genellikle tarih gibi tek bir sütuna göre filtrelediğinde ve eski veri düzenli olarak arşivlenip silindiğinde. Küçük tablolarda çoğunlukla yalnızca karmaşıklık ekler.

Partition pruning nedir?

Veritabanının, sorgunun partition anahtarı üzerindeki filtresine bakarak eşleşen satır içeremeyecek partition'ları atlamasıdır. Bölümlenmiş sorguları hızlı yapan budur.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar