0Pricing
Advanced PostgreSQL: Indexing, Partitioning, Replication · Pelajaran

Indeks BRIN untuk Tabel Besar yang Dipartisi

Pelajari kapan Block Range Indexes mengungguli B-tree pada tabel besar yang dipartisi dan tersusun secara alami.

Indeks BRIN untuk Tabel Besar yang Dipartisi adalah pelajaran Advanced PostgreSQL: Indexing, Partitioning, Replication gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Advanced PostgreSQL: Indexing, Partitioning, Replication, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Advanced PostgreSQL: Indexing, Partitioning, Replication mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

The Scale Problem

On tables with billions of rows, a B-tree index can grow huge and consume a lot of memory. BRIN (Block Range Index) offers a tiny alternative for naturally ordered data.

How BRIN Works

BRIN stores the min and max value per block range instead of one entry per row. A query checks which ranges could contain matching rows and scans only those blocks.

Correlation Is Key

BRIN shines when the column's physical order correlates with its value order, such as an inserted_at timestamp on an append-only table. Random ordering makes BRIN nearly useless.

Creating a BRIN Index

You declare it with USING brin. It is dramatically smaller than a B-tree on the same column.

CREATE INDEX ON measurements USING brin (recorded_at);

pages_per_range

The pages_per_range storage parameter controls granularity. Smaller values give more precise (but larger) indexes.

CREATE INDEX ON measurements USING brin (recorded_at)
  WITH (pages_per_range = 32);

Size Comparison

A B-tree might be many gigabytes on a billion-row table; the equivalent BRIN can be just a few megabytes. The trade-off is BRIN does coarser filtering.

BRIN on Partitions

On a range-partitioned table, create the BRIN on the parent; it propagates to each partition. Within a partition the data is usually well-correlated, so BRIN works great.

CREATE INDEX ON events USING brin (created_at);

Keeping BRIN Fresh

New blocks must be summarized for BRIN to cover them. Autovacuum does this, or you can force it.

SELECT brin_summarize_new_values('measurements_recorded_at_idx');

Verifying with EXPLAIN

Look for a Bitmap Index Scan on the BRIN index followed by a recheck. The recheck confirms candidate blocks really contain matches.

EXPLAIN SELECT * FROM measurements
WHERE recorded_at > now() - interval '1 day';

When Not to Use BRIN

Avoid BRIN for:

  • Columns with random physical order
  • Point lookups needing exact, fast access (use B-tree)
  • Uniqueness enforcement (BRIN cannot)

Combining Strategies

At scale, a common pattern is: range-partition by time, BRIN on the time column for cheap range scans, and a small B-tree on a frequently filtered foreign key.

Quick Check

When is BRIN a strong choice?

Recap

You learned BRIN indexes: tiny block-range summaries ideal for huge, well-correlated partitioned tables. Tune pages_per_range, keep summaries fresh, verify with EXPLAIN, and combine BRIN with selective B-trees.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Indeks BRIN untuk Tabel Besar yang Dipartisi” gratis?

Ya — teks lengkap “Indeks BRIN untuk Tabel Besar yang Dipartisi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Advanced PostgreSQL: Indexing, Partitioning, Replication, upgrade ke CoddyKit PRO. Kursus Advanced PostgreSQL: Indexing, Partitioning, Replication mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Indeks BRIN untuk Tabel Besar yang Dipartisi”?

Pelajari kapan Block Range Indexes mengungguli B-tree pada tabel besar yang dipartisi dan tersusun secara alami. Kamu berlatih Advanced PostgreSQL: Indexing, Partitioning, Replication dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Advanced PostgreSQL: Indexing, Partitioning, Replication?

Tidak diperlukan pengalaman sebelumnya. Advanced PostgreSQL: Indexing, Partitioning, Replication di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Indeks BRIN untuk Tabel Besar yang Dipartisi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Advanced PostgreSQL: Indexing, Partitioning, Replication ini?

Ya. Setiap pelajaran Advanced PostgreSQL: Indexing, Partitioning, Replication menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Menskalakan Indeks dengan Partisi
  2. Memilih Strategi Indeks/Partisi
  3. Studi Kasus Dunia Nyata
  4. Indeks BRIN untuk Tabel Besar yang Dipartisi
← Kembali ke Advanced PostgreSQL: Indexing, Partitioning, Replication