PostgreSQL Performance & Query Optimization · درس

الفهارس المركبة والفهارس المغطية

سرّع الاستعلامات متعددة الأعمدة باستخدام الفهارس المركبة، وألغِ عمليات البحث في الجداول تمامًا باستخدام الفهارس المغطية مع INCLUDE

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

الفهارس المركبة والفهارس المغطية درس مجاني في PostgreSQL Performance & Query Optimization على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PostgreSQL Performance & Query Optimization، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PostgreSQL Performance & Query Optimization 4 دروس في المجموع.

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

Beyond Single-Column Indexes

Many queries filter on more than one column. A composite index spans multiple columns and can serve such queries far better than separate single-column indexes.

Creating a Composite Index

List columns in the order you want them indexed.

CREATE INDEX idx_orders_cust_date
ON orders (customer_id, order_date);

Column Order Matters

A composite index on (a, b) helps queries filtering on a alone or a AND b, but generally NOT queries filtering only on b.

The Leftmost Prefix Rule

PostgreSQL can use any leftmost prefix of the index. So (a, b, c) serves filters on a, on a+b, and on a+b+c.

Ordering by Selectivity

Put the most selective or most frequently filtered column first, often an equality column before a range column, to maximize how many rows the index eliminates early.

CREATE INDEX idx_orders_status_date
ON orders (status, order_date);

The Heap Lookup Cost

A normal index scan finds matching rows then visits the table (the heap) to read the other columns. Those extra fetches cost I/O.

Covering Indexes

A covering index contains every column the query needs, so PostgreSQL answers from the index alone, an Index Only Scan, with no heap visit.

Using INCLUDE

The INCLUDE clause adds non-key columns to the index leaf pages so they are available without being part of the searchable key.

CREATE INDEX idx_orders_cust_incl
ON orders (customer_id)
INCLUDE (order_date, total);

Confirming Index Only Scan

Check the plan; you want to see Index Only Scan rather than Index Scan plus heap fetches.

EXPLAIN ANALYZE
SELECT order_date, total
FROM orders WHERE customer_id = 42;

The Visibility Map Caveat

Index Only Scans still need the heap when pages are not marked all-visible. Keeping tables well-vacuumed maintains the visibility map so scans stay index-only.

VACUUM ANALYZE orders;

Costs of Wide Indexes

More columns mean larger indexes and slower writes. Add covering columns only for hot queries, not everywhere.

Quick Check

Test what you have learned.

Recap

You learned how composite indexes serve multi-column filters under the leftmost prefix rule, how column order and selectivity matter, and how covering indexes with INCLUDE enable Index Only Scans, balanced against larger size and write cost.

البدء مجانًا

تعلم SQL مع معلم ذكاء اصطناعي — مجانًا

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

الدورات
22
الدروس
88

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

هل درس «الفهارس المركبة والفهارس المغطية» مجاني؟

نعم — نص درس «الفهارس المركبة والفهارس المغطية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PostgreSQL Performance & Query Optimization، انتقل إلى CoddyKit PRO. تتضمن دورة PostgreSQL Performance & Query Optimization 4 دروس في المجموع.

ماذا ستتعلم في «الفهارس المركبة والفهارس المغطية»؟

سرّع الاستعلامات متعددة الأعمدة باستخدام الفهارس المركبة، وألغِ عمليات البحث في الجداول تمامًا باستخدام الفهارس المغطية مع INCLUDE تتمرن على PostgreSQL Performance & Query Optimization مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PostgreSQL Performance & Query Optimization؟

لا تُشترط خبرة سابقة. PostgreSQL Performance & Query Optimization على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

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

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

هل يمكنني كتابة وتشغيل أكواد في درس PostgreSQL Performance & Query Optimization هذا؟

نعم. كل درس في PostgreSQL Performance & Query Optimization يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

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

  1. أساسيات فهارس B-Tree
  2. إنشاء الفهارس واستخدامها
  3. متى وكيف تنشئون فهرسًا
  4. الفهارس المركبة والفهارس المغطية
← العودة إلى PostgreSQL Performance & Query Optimization