عبارة where
وصف الفصل السابق بنية الفهارس وشرح سبب ضعف أداء الفهارس. وفي الخطوة التالية نتعلّم كيف نكتشف هذه المشكلات ونتجنبها في عبارات SQL. نبدأ بالنظر إلى عبارة where.
تحدّد عبارة where شرط البحث في عبارة SQL، وبذلك تقع في المجال الوظيفي الأساسي للفهرس: العثور على البيانات بسرعة. ورغم أن لعبارة where تأثيراً هائلاً في الأداء، فإنها غالباً ما تُصاغ بإهمال بحيث تضطر قاعدة البيانات (database) إلى مسح جزء كبير من الفهرس. والنتيجة: عبارة where سيئة الصياغة هي المكوّن الأول لاستعلام بطيء.
يشرح هذا الفصل كيف تؤثر مختلف المعاملات في استخدام الفهرس، وكيف نضمن أن يكون الفهرس صالحاً لأكبر عدد ممكن من الاستعلامات. ويعرض القسم الأخير أنماطاً مضادة شائعة (anti-patterns) ويقدّم بدائل تحقق أداءً أفضل.
المحتويات
- معامل التساوي — بحث دقيق بالمفتاح*المفاتيح الأساسية* — التحقق من استخدام الفهرس
- المفاتيح المُسلسلة — فهارس متعددة الأعمدة
- الفهارس البطيئة، الجزء الثاني — المكوّن الأول، مرة أخرى
الدوال — استخدام الدوال في عبارة where
- بحث غير حساس لحالة الأحرف —
UPPERوLOWER - الدوال المعرّفة من المستخدم — قيود الفهارس القائمة على الدوال
- الإفراط في الفهرسة — تجنّب التكرار
متغيّرات الربط — للأمان والأداء
البحث عن النطاقات — ما بعد التساوي
- أكبر وأصغر و
BETWEEN— ترتيب الأعمدة مرة أخرى - فهرسة مرشّحات
LIKEفي SQL —LIKEليس للبحث النصي الكامل - دمج الفهارس — لماذا لا نستخدم فهرساً لكل عمود؟
الفهارس الجزئية — فهرسة صفوف مختارة
NULL في قاعدة بيانات Oracle — خصوصية مهمة
NULLفي الفهارس — كل فهرس هو فهرس جزئي- قيود
NOT NULL— تؤثر في استخدام الفهارس - محاكاة الفهارس الجزئية — باستخدام الفهرسة القائمة على الدوال
الشروط المُعتَّمة — أنماط مضادة شائعة
- التواريخ — انتبه انتباهاً خاصاً لأنواع
DATE - السلاسل الرقمية — لا تخلط الأنواع
- دمج الأعمدة — استخدم عبارات
whereزائدة - المنطق الذكي — أذكى طريقة لإبطاء SQL
- الرياضيات — قواعد البيانات لا تحل المعادلات