0Pricing
SQL Academy · Ders

LIMIT, OFFSET ve Sayfalamanın Temelleri

Büyük sonuç kümelerini LIMIT ve OFFSET ile sayfalayın, performans ödünleşimlerini anlayın ve kararlı kaydırma için anahtar kümesi sayfalamasını kullanın.

LIMIT, OFFSET ve Sayfalamanın Temelleri, 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.

LIMIT: Sonucu Sınırlandırma

LIMIT n en fazla n satır döndürür:

SELECT * FROM products
ORDER BY created_at DESC
LIMIT 10;

OFFSET: İlk N Satırı Atla

OFFSET k ilk k satırı atlar:

-- Rows 11–20 (the second page of 10):
SELECT * FROM products
ORDER BY created_at DESC
LIMIT 10 OFFSET 10;

Sayfalama = LIMIT + OFFSET

Klasik sayfa numarası deseni:

-- Page p (1-based), page size s:
SELECT * FROM articles
ORDER BY published_at DESC
LIMIT s OFFSET (p - 1) * s;

OFFSET Neden Yavaşlar

OFFSET, atlanan her satırı dahili olarak yine de okur:

  • 10 satırlık 1. sayfa → 10 satır okur
  • 10 satırlık 1000. sayfa → 10.000 satır okur
  • 1.000.000. sayfa → on milyon satır okur

OFFSET'in maliyeti O(offset) değerindedir. İlerideki sayfalar için bu yöntem kullanılamaz.

Anahtar Tabanlı Sayfalama ("arama yöntemi")

Son görülen sıralama anahtarını hatırlayarak sonraki sayfaya geçin:

-- First page:
SELECT * FROM articles
ORDER BY published_at DESC, id DESC
LIMIT 20;

-- Next page — pass the last seen (published_at, id):
SELECT * FROM articles
WHERE (published_at, id) < ($1, $2)
ORDER BY published_at DESC, id DESC
LIMIT 20;

Anahtar Tabanlı Sayfalama Neden Daha Hızlıdır

Anahtar tabanlı sayfalama, dizin aralık taraması kullanır: son görülen satırdan sonraki satıra doğrudan gider, N satır okur ve tamamlanır. Maliyet, kaçıncı sayfada olduğunuzdan bağımsız olarak O(sayfa boyutu) değerindedir.

ORDER BY Olmadan LIMIT Belirsizdir

Temel kural: her zaman LIMIT ile ORDER BY ifadelerini birlikte kullanın. Aksi takdirde veritabanı her çağrıda farklı satırlar döndürebilir.

-- Wrong — results may vary between runs:
SELECT * FROM events LIMIT 10;

-- Right:
SELECT * FROM events ORDER BY id DESC LIMIT 10;

Toplam Sayılar ve Sayfalama

Kullanıcı arayüzünün bazen toplam satır sayısına ihtiyacı olur. Ayrı bir COUNT(*) sorgusu en basit çözümdür; ancak büyük tablolarda maliyetli olabilir:

SELECT COUNT(*) FROM articles WHERE author_id = $1;

-- Alternative for huge tables: estimate from pg_class.reltuples or use approximate counts.

FETCH FIRST (Standart SQL)

LIMIT için standart SQL söz dizimi:

SELECT * FROM products
ORDER BY id
FETCH FIRST 10 ROWS ONLY;

-- With offset:
-- OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY

Büyük Sonuç Kümeleri için İmleçler

Milyonlarca satırı dışa aktarmak için LIMIT/OFFSET döngüleri yerine bir veritabanı imleci veya akış sürücüsü kullanın:

BEGIN;
DECLARE big_cursor CURSOR FOR
  SELECT * FROM events ORDER BY id;
FETCH 1000 FROM big_cursor;
-- ...
CLOSE big_cursor;
COMMIT;

OFFSET Ne Zaman Uygundur

OFFSET, sığ sayfalar için (bir kullanıcı arayüzünde 1–10. sayfalar) veya küçük tablolar için uygundur. İlerideki sayfalar, sonsuz kaydırma veya API'ler için anahtar tabanlı sayfalama kullanın.

Özet

LIMIT ve OFFSET, sonuç kümelerinde sayfalama yapar.

  • Her zaman ORDER BY ile birlikte kullanın
  • OFFSET ilerideki sayfalarda yavaştır — büyük sayfalarda anahtar tabanlı sayfalamaya geçin
  • FETCH FIRST, standart karşılığıdır

Hızlı Kontrol

Büyük bir tabloda ilerideki sayfalara ulaşarak sayfalama yapmanın en verimli yolu hangisidir?

Sıkça Sorulan Sorular

“LIMIT, OFFSET ve Sayfalamanın Temelleri” dersi ücretsiz mi?

Evet — “LIMIT, OFFSET ve Sayfalamanın Temelleri” 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.

“LIMIT, OFFSET ve Sayfalamanın Temelleri” dersinde ne öğreneceğim?

Büyük sonuç kümelerini LIMIT ve OFFSET ile sayfalayın, performans ödünleşimlerini anlayın ve kararlı kaydırma için anahtar kümesi sayfalamasını 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 4. dersidir.

“LIMIT, OFFSET ve Sayfalamanın Temelleri” 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. Sütunları ve İfadeleri Seçme
  2. WHERE Süzgeçleri: Karşılaştırma ve Mantık İşleçleri
  3. Tek ve Birden Çok Sütunla ORDER BY
  4. LIMIT, OFFSET ve Sayfalamanın Temelleri
← SQL Academy Sayfasına Dön