ORDER BY واستخدام العروض المُجسَّدة.
سنرى كيف يمكن لهذه الأساليب تقليل زمن الاستعلام من ثوانٍ إلى ميلي ثانية.
حسّن مفاتيح ORDER BY
project وsubproject.
في هذه الحالة، من الجيد إضافتهما إلى مفتاح الترتيب، وكذلك العمود time لأننا نستعلم حسب الوقت أيضًا.
لننشئ نسخة أخرى من الجدول لها أنواع الأعمدة نفسها في wikistat، لكنها مرتبة حسب (project, subproject, time).
codec السابقة، لذا فإن أي فروقات في أداء الاستعلامات تعود فقط إلى ترتيب الفرز.
| الاستعلام | (time) | (project, subproject, time) |
|---|---|---|
| 2.381 ثانية | 1.660 ثانية | |
| 2.148 ثانية | 0.058 ثانية | |
| 2.192 ثانية | 0.012 ثانية | |
| 2.968 ثانية | 0.010 ثانية |
العروض المُجسَّدة
إنشاء عرض مُجسَّد
تعبئة جدول الوجهة بالبيانات التاريخية
wikistat، لذا نحتاج إلى إجراء تعبئة للبيانات التاريخية.
أسهل طريقة لتنفيذ ذلك هي استخدام تعليمة INSERT INTO SELECT للإدراج مباشرةً في الجدول الهدف الخاص بالعرض المُجسَّد باستخدام استعلام SELECT الخاص بالعرض (التحويل):
- إنشاء جدول مؤقت باستخدام محرك جدول Null
- ربط نسخة من العرض المُجسَّد المستخدم عادةً بذلك الجدول المؤقت
- باستخدام استعلام
INSERT INTO SELECT، نسخ جميع البيانات من مجموعة البيانات الخام إلى ذلك الجدول المؤقت - حذف الجدول المؤقت والعرض المُجسَّد المؤقت.
wikistat_backfill وكتابتها في wikistat_top
wikistat_backfill انطلاقًا من جدول wikistat الأوّلي: