Tablo dolgu faktörü ile dizin dolgu faktörü arasındaki fark


16

Postgres'de, bir dizin yanı sıra bir tablo için dolgu faktörü ayarlanabilir. Fark ne? Her ikisi için de değerlere nasıl karar verilir. Kullanımları nelerdir?

Bir uzamsal endekste uzamsal bir ilişkiyi kümelemeye çalışıyorum. Birkaç milyon kaydı var. Kayıtlar her zaman güncellenir, ancak günlük olarak çok az sayıda yeni kayıt oluşturulur.

Kullanım durumu mekansal aralık sorgularıdır. Tablo doldurma faktörü ve / veya dizin doldurma faktörü için iyi bir değer ne olur?

Yanıtlar:


12

Gönderen TABLO kılavuz sayfasına CREATE (vurgu eklenmiştir):

Bir tablo için dolgu faktörü 10 ile 100 arasında bir yüzdedir. 100 (tam paketleme) varsayılan değerdir. Daha küçük bir dolgu faktörü belirtildiğinde, INSERT işlemleri tablo sayfalarını yalnızca belirtilen yüzdeye ekler; her sayfadaki kalan alan, o sayfadaki satırları güncellemek için ayrılmıştır. Bu, UPDATE'e, bir satırın güncellenmiş kopyasını orijinaliyle aynı sayfaya yerleştirme şansı verir, bu da onu farklı bir sayfaya yerleştirmekten daha etkilidir. Girişleri asla güncellenmeyen bir tablo için eksiksiz paketleme en iyi seçimdir, ancak çok güncellenen tablolarda daha küçük dolgu faktörleri uygundur.

Gönderen INDEX kılavuz sayfasına CREATE (vurgu eklenmiştir):

Bir dizin için dolgu faktörü , dizin yönteminin dizin sayfalarını nasıl paketlemeye çalışacağını belirleyen bir yüzdedir. B-ağaçları için, yaprak sayfaları ilk dizin oluşturma sırasında ve ayrıca dizini sağa doğru genişletirken (en büyük anahtar değerleri) bu yüzdeye kadar doldurulur. Sayfalar daha sonra tamamen dolarsa, bölünürler ve dizinin verimliliğinde kademeli bir düşüşe neden olurlar.B ağaçları varsayılan 90 dolgu dolgusu kullanır, ancak 10 ile 100 arasında herhangi bir değer seçilebilir. Tablo statik ise, doldurma faktörü 100, dizinin fiziksel boyutunu en aza indirmek için en iyisidir, ancak çok güncelleştirilmiş tablolar için, sayfa bölünmesi ihtiyacını en aza indirmek için daha küçük bir dolgu faktörü daha iyidir. Diğer indeks yöntemleri dolgu faktörünü farklı fakat kabaca benzer şekillerde kullanır; varsayılan dolgu faktörü yöntemlere göre değişir.


1
Bir teklifin kaynağından bahsetmek gelenekseldir. Anlaşılması kolay olsa bile.
Erwin Brandstetter

evet, tabii) bazen unutmak ...

Biraz daha özür dilerim. Lütfen kılavuzun mevcut sürümüne bağlantı verin (belirli bir adrese değinmeniz gerekmedikçe). Ben düzenledim. Burada daha fazlası var .
Erwin Brandstetter

Bağlantılar geriye dönük.
Dave Johansen

2
Re: "Tablo statik ise, doldurma faktörü (100) dizinin fiziksel boyutunu en aza indirmek için en iyisidir, ancak yoğun şekilde güncellenen tablolar için sayfa bölünmesi ihtiyacını en aza indirmek için daha küçük bir dolgu faktörü daha iyidir." "Çok güncellenen tabloların" bağlamını anlamaya çalışmak, bu, çok güncellenen satır değerlerine sahip tablo anlamına mı geliyor, yoksa satırları sık sık eklenen ve / veya silinen tabloları da içerebilir mi? Satır değerlerinde birkaç değişiklik ancak kapsamlı ekler ve siler olan masamın temel (anahtar) dizinindeki düşük dolgu faktöründen faydalanıp faydalanmayacağını bilmek istedim.
Reinsbrain
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.