شرح صفوف ومحتوى الفقرة
كيف ينفذ محرك MySQL استعلام العرض داخلياً؟ يمكنك التحكم في طريقة المعالجة عبر تحديد الخوارزمية ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE} عند إنشاء العرض:
ALGORITHM = MERGE: يدمج MySQL نص استعلامك الخارجي مع استعلام العرض في جملة واحدة تنفذ مباشرةً على الجدول الأساسي (Query Rewriting). تتميز هذه الخوارزمية بأعلى سرعة وأقل استهلاك للذاكرة، وتسمح بتحديث البيانات عبر العرض.ALGORITHM = TEMPTABLE: ينفذ المحرك استعلام العرض أولاً ويخزن نتائجه في جدول مؤقت داخلي، ثم ينفذ استعلامك الخارجي فوق الجدول المؤقت. تُفرض هذه الخوارزمية تلقائياً عند وجودGROUP BYأوDISTINCTأوUNION، وتجعل العرض غير قابل للتحديث دائماً.ALGORITHM = UNDEFINED(الافتراضي): يترك القرار لمحسّن MySQL، والذي يفضّلMERGEدائماً متى ما سمحت بنية الاستعلام بذلك.
SQL
CREATE OR REPLACE ALGORITHM = MERGE VIEW v_fast_active_products AS ...;