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

فهارس المفاتيح الفريدة والمفاتيح الأساسية

افهم كيف يدعم PostgreSQL المفاتيح الأساسية والقيود الفريدة تلقائيًا باستخدام الفهارس، وكيف تستخدم الفهارس الفريدة لفرض تكامل البيانات بكفاءة.

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

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

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

Constraints Need Indexes

To enforce uniqueness, PostgreSQL must check existing rows fast — so it auto-builds a unique index behind every unique constraint and primary key.

Primary Key Index

Declaring a primary key creates a unique B-tree index on those columns and marks them NOT NULL. The code shows it in action.

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  email TEXT
);

The Hidden Index

That primary key silently builds an index called users_pkey. You never wrote CREATE INDEX, yet lookups by id are already fast.

Unique Constraints

A UNIQUE constraint also creates a supporting index and rejects duplicate values — the ALTER TABLE below adds one.

ALTER TABLE users ADD CONSTRAINT users_email_key UNIQUE (email);

Standalone Unique Index

You can build a unique index directly, without a named constraint — it still enforces uniqueness, as the code shows.

CREATE UNIQUE INDEX idx_users_email ON users (email);

Multi-Column Uniqueness

Index multiple columns together for multi-column uniqueness — like one membership per user per group. The code makes the pair unique.

CREATE UNIQUE INDEX idx_membership ON memberships (user_id, group_id);

NULLs and Uniqueness

PostgreSQL treats NULLs as distinct by default, so a unique column allows many NULLs. Add NULLS NOT DISTINCT to forbid more than one.

CREATE UNIQUE INDEX idx_code ON items (code) NULLS NOT DISTINCT;

Partial Unique Index

A partial unique index enforces uniqueness only on rows matching a WHERE clause — for example, one active session per user.

CREATE UNIQUE INDEX idx_active ON sessions (user_id) WHERE active;

Dual Benefit

A unique index gives you two things at once: data integrity and fast lookups. The planner uses it like any other B-tree index.

Constraint vs Index

The constraint is the logical rule; the index enforces it. You can't drop the index without the constraint, and foreign keys can reference these columns.

Cost Awareness

Unique indexes add write overhead since every insert checks for duplicates. Index only the columns that genuinely need to be unique.

Quick Check

Primary keys, NULLs, partial indexes — let's see what stuck about unique indexes.

Recap

Recap: every primary key and unique constraint is backed by a unique B-tree index for integrity plus speed. You can also go standalone, multi-column, or partial — but each adds write cost.

البدء مجانًا

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

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

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

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

هل درس «فهارس المفاتيح الفريدة والمفاتيح الأساسية» مجاني؟

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

ماذا ستتعلم في «فهارس المفاتيح الفريدة والمفاتيح الأساسية»؟

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

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

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

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

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

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

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

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

  1. أهمية الفهارس
  2. أساسيات فهرس B-tree
  3. إنشاء الفهارس وحذفها
  4. فهارس المفاتيح الفريدة والمفاتيح الأساسية
← العودة إلى Advanced PostgreSQL: Indexing, Partitioning, Replication