Advanced PostgreSQL: Indexing, Partitioning, Replication · درس

فهارس BRIN للجداول الكبيرة المقسّمة

تعلّم متى تتفوق فهارس نطاقات الكتل على أشجار B في الجداول الضخمة والمقسّمة ذات الترتيب الطبيعي.

الدرس 4 من 413 خطوة

فهارس BRIN للجداول الكبيرة المقسّمة درس مجاني في Advanced PostgreSQL: Indexing, Partitioning, Replication على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Advanced PostgreSQL: Indexing, Partitioning, Replication، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Advanced PostgreSQL: Indexing, Partitioning, Replication 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

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.

البدء مجانًا

تعلم Advanced PostgreSQL: Indexing, Partitioning, Replication مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
11
الدروس
44

الأسئلة الشائعة

هل درس «فهارس BRIN للجداول الكبيرة المقسّمة» مجاني؟

نعم — نص درس «فهارس BRIN للجداول الكبيرة المقسّمة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Advanced PostgreSQL: Indexing, Partitioning, Replication، انتقل إلى CoddyKit PRO. تتضمن دورة Advanced PostgreSQL: Indexing, Partitioning, Replication 4 دروس في المجموع.

ماذا ستتعلم في «فهارس BRIN للجداول الكبيرة المقسّمة»؟

تعلّم متى تتفوق فهارس نطاقات الكتل على أشجار B في الجداول الضخمة والمقسّمة ذات الترتيب الطبيعي. تتمرن على Advanced PostgreSQL: Indexing, Partitioning, Replication مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Advanced PostgreSQL: Indexing, Partitioning, Replication؟

لا تُشترط خبرة سابقة. Advanced PostgreSQL: Indexing, Partitioning, Replication على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «فهارس BRIN للجداول الكبيرة المقسّمة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Advanced PostgreSQL: Indexing, Partitioning, Replication هذا؟

نعم. كل درس في Advanced PostgreSQL: Indexing, Partitioning, Replication يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. توسيع نطاق الفهارس باستخدام التقسيم
  2. اختيار استراتيجيات الفهرسة والتقسيم
  3. دراسات حالة واقعية
  4. فهارس BRIN للجداول الكبيرة المقسّمة
← العودة إلى Advanced PostgreSQL: Indexing, Partitioning, Replication