هي صلات على FK أسرع من الصلات بدون FK ؟

لنفترض أن لدي جدولين ، أ و ب :

a {
 pk as int
 fk as int
 ...
}

b {
 pk as int
 ...
}

أريد الانضمام a و b في استعلام مثل:

FROM a
JOIN b on a.fk = b.pk

أي من السيناريوهات التالية سيكون أسرع؟ تم إعداد

  1. a.fk ليكون مفتاحًا خارجيًا على b.pk - b.pk مفهرس
  2. تم إعداد a.fk ليكون مفتاحًا خارجيًا على b.pk - b.pk غير مفهرس
  3. لا توجد علاقة بين الجداول - b.pk مفهرس
  4. لا توجد علاقة بين الجداول - b.pk غير مفهرس

سؤال إضافي - ما مدى سرعة / أبطأ كل من هذه السيناريوهات؟

إذا كان بإمكانك نسخ إجابتك احتياطيًا بمرجع ، فسيكون ذلك رائعًا. شكرًا لك!

7
задан Brian Beckett 27 June 2011 в 13:57
поделиться