0Pricing
SQL Academy · Ders

Parçalama Stratejileri: Aralık, Hash, Dizin

Aralık, hash ve dizin tabanlı parçalamayı karşılaştırın; yükü dengeleyen ve kararlı kalan bir parça anahtarı seçin.

Parçalama Stratejileri: Aralık, Hash, Dizin, 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.

Parçalama Nedir?

Tek bir mantıksal veritabanını, her biri verilerin bir alt kümesini tutan birden çok fiziksel sunucuya ("parçalara") bölme işlemidir. Tek bir sunucu iş yükünü artık kaldıramadığında yapılır.

Parçalama ≠ Çoğaltma

  • Çoğaltma — aynı verilerin birden çok sunucuda bulunması (HA ve okuma ölçeklendirmesi için)
  • Parçalama — farklı verilerin farklı sunucularda bulunması (yazma ölçeklendirmesi ve kapasite için)

Çoğu zaman ikisini birleştirirsiniz: HA için her parça çoğaltılır.

Üç Parçalama Stratejisi

  • Aralık — değer aralığına göre parçalama (1-1M kimlikleri A parçasında, 1M-2M kimlikleri B parçasında)
  • Karma — parça anahtarını karma değerine dönüştürme, N'ye göre kalanını alma
  • Dizin — anahtar → parça eşlemesini içeren ayrı bir tablo

Aralıkla Parçalama

Basittir; zaman serileri ve sıralı kimliklerle iyi çalışır. Risk: en güncel veriler tüm trafiği alırsa yoğun parçalar oluşur.

-- Conceptually:
-- Shard A: user_id 1 - 1,000,000
-- Shard B: user_id 1,000,001 - 2,000,000
-- Shard C: user_id 2,000,001 - 3,000,000

Karmayla Parçalama

Varsayılan olarak dengeli dağılım sağlar. Parça eklemek zordur (yeniden parçalama tüm anahtarları taşır):

-- shard_id = hash(user_id) % N
-- N=4: any user_id evenly distributed across 4 shards

Dizinle Parçalama

Bir arama tablosu her anahtarı kendi parçasına eşler:

CREATE TABLE shard_routing (
  user_id BIGINT PRIMARY KEY,
  shard_id INT NOT NULL
);

-- Looking up a user costs a directory query first; cache it.

Tutarlı Karma

Parça eklerken modüler karma yöntemi kırılgandır. Tutarlı karma, taşınması gereken anahtar sayısını en aza indirir:

-- Each shard owns a ring segment.
-- Adding a new shard moves only ~1/N of the keys.

Parça Anahtarı Seçme

Parça anahtarı her şeyi belirler. İyi parça anahtarları:

  • Dengeli dağılım sağlar
  • Çoğu sorguda bulunur (parçalar arası çoklu dağıtımı önler)
  • Değişmezdir (veya nadiren değişir)
<p>Common picks: user_id, tenant_id, customer_id. Avoid: timestamps for write-heavy workloads (creates hot shards).</p>

Kiracı Başına Parça

Çok kiracılı SaaS: her kiracı özel bir parçada bulunur. Mantığını kavramak basittir ve gürültü oluşturan kiracıları yalıtmak kolaydır.

Yeniden Parçalanabilir Tasarım

Gelecekte yeniden parçalama yapmayı göz önünde bulundurarak tasarlayın:

  • Sanal parçalar kullanın (ör. fiziksel parçalara eşlenen 1024 mantıksal parça)
  • Mantıksal bir parçayı başka bir fiziksel sunucuya taşımayı kolaylaştırın
  • Parça sayılarını uygulama koduna sabitlemekten kaçının

Parçalar Arası Sorgular

En zor sorundur. Parçalar arası JOIN işlemleri ve raporlar, uygulamada çoklu dağıtım ve toplama mantığı gerektirir. Sonraki derste ele alınacaktır.

Parçalar Arası İşlemler

Atomik parçalar arası işlemler, iki aşamalı kesinleştirme (2PC) veya saga desenleri gerektirir. Genel öneri: işlemlerin tek bir parça içinde kalacağı şekilde tasarlayın.

Özet

Üç strateji vardır; trafiğinizin yapısına göre seçim yapın.

  • Aralık — basit, yoğun parça riski taşır
  • Karma — dengeli ancak katıdır
  • Dizin — esnektir ancak gecikme ekler
  • Kademeli yeniden parçalama için tutarlı karma

Hızlı Kontrol

Bir users tablosunu hash(user_id) ile parçalara ayırıyorsunuz. 4 parçadan 5 parçaya geçiyorsunuz. Kaç anahtar taşınmalıdır?

Sıkça Sorulan Sorular

“Parçalama Stratejileri: Aralık, Hash, Dizin” dersi ücretsiz mi?

Evet — “Parçalama Stratejileri: Aralık, Hash, Dizin” 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.

“Parçalama Stratejileri: Aralık, Hash, Dizin” dersinde ne öğreneceğim?

Aralık, hash ve dizin tabanlı parçalamayı karşılaştırın; yükü dengeleyen ve kararlı kalan bir parça anahtarı seçin. 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.

“Parçalama Stratejileri: Aralık, Hash, Dizin” 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. Parçalama Stratejileri: Aralık, Hash, Dizin
  2. Parçalar Arası Sorgular: Zor Problem
  3. Citus ve Dağıtık Postgres
  4. Ne Zaman Parçalamamalı
← SQL Academy Sayfasına Dön