سؤال

هل قيد فريد مؤشر افتراضيا؟ إن لم يكن، لا قيد فريد له نفس نتائج الأداء باعتبارها العمود المفهرسة عند استخدامه في بند SELECT ... WHERE؟

والشكر

هل كانت مفيدة؟

المحلول

وهناك قيد فريد هو بالضرورة فهرس. ان تحدد عادة بأنها "UNIQUE INDEX". ستكون هناك حاجة فهرس في أي حال لتنفيذ بكفاءة قيد فريد، لذلك وجود واحد لا غير مؤات.

نصائح أخرى

وهناك عائق هو في الواقع يختلف كثيرا عن مؤشر: وتقول أن مجرد الخلية من المفترض أن فرض تفرد لك. فهرس ولكن (على الرغم من أنه يمكن أن تكون فريدة من نوعها) هو عن طلب فعلي على القرص الصلب الخاص بك، أو عن هياكل إضافية (عادة شجرة) التي تسمح للبحث فعال على العمود.

ولكن هل يمكن أن يكون مربكا كل هذا مع المفاتيح الأساسية التي تحدد (تتجمع عادة) فهرس فريد.

وهناك قيد فريد هو وسيلة للتعبير عن حقيقة أن شيئا ما (مثل بعض مزيج من القيم السمة) يجب أن تكون فريدة من نوعها في نطاق علاقة كلها ( "الجدول")).

وهذا هو على مستوى التصميم المنطقي.

والمؤشر هو وسيلة ربما مفيدة في المساعدة على فرض مثل هذه القيود.

وهذا هو على مستوى التصميم المادى.

وبعض المنتجات DBMS قد يستنتج بعض بنيات تصميم المادية، مثل وجود بعض المؤشرات، من وجود بعض بنيات تصميم منطقية، مثل عائقا فريد. البعض الآخر قد لا.

وUNIQUE هو في الواقع قيدا <م> على فهرس، لذلك نعم، UNIQUE يعني أن هناك فهرس على الحقل الذي فرض تفرد جرا.

وتحقق من قيد مفتاح أساسي قبل البدء في استخدام قيود فريدة.

وهناك قيد مفتاح أساسي يرقى إلى إعلان قيد فريد وقيدا غير فارغة. إذا كان هناك أكثر من عمود واحد في المفتاح الأساسي، كل عمود يحصل قيدا غير فارغة، ولكن ينطبق على قيد فريد لكافة الأعمدة معا.

وعندما تقوم بتعريف مفتاح أساسي، فإن DBMS إنشاء فهرس بالنسبة لك. يمكنك إسقاط الفهرس إذا أردت، ولكن عليك الحصول على أداء الرهيبة عندما يفعل DBMS مسح الطاولة للتحقق من التفرد.

والقيود المفتاح الأساسي فرض سلامة الكيان، في حين مراجع (المفتاح الخارجي) القيود فرض التكامل المرجعي. معا، فإنها تقطع شوطا طويلا نحو ضمان سلامة البيانات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top