سؤال

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

dateField < 'var'

و

'var' BETWEEN dateField1 AND dateField2

يتم إجراء عمليات البحث كثيرًا ، لكنني لا أقوم بمقارنة مباشرة "=" عليها.

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

المحلول

نعم بالطبع. ستستفيد عمليات البحث في النطاق من فهرس ، تمامًا مثل عمليات البحث عن المساواة.

نقلاً عن دليل مرجع MySQL :: كيف يستخدم MySQL الفهارس:

خصائص فهرس شجرة B.

يمكن استخدام فهرس B-Tree لإجراء مقارنات الأعمدة في التعبيرات التي تستخدم = ،> ،> = ، <، <= ، أو بين المشغلين. يمكن أيضًا استخدام الفهرس لمثل المقارنات إذا كانت الوسيطة التي تعجبها هي سلسلة ثابتة لا تبدأ بحرف البدل.

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

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