EXPLAIN QUERY PLAN
EXPLAIN QUERY PLAN
مفهوم
~19 دقيقة
EXPLAIN QUERY PLAN
EXPLAIN QUERY PLAN في SQLite يعطيك فكرة عن طريقة تنفيذ الاستعلام. هل سيقرأ الجدول كله؟ هل سيستخدم فهرساً؟ هذه ليست أداة سحرية، لكنها بداية ممتازة قبل التخمين.
كلمة SCAN قد تعني قراءة واسعة، وSEARCH ... USING INDEX تعني استخدام فهرس. لا تفهم الخطة من كلمة واحدة فقط؛ انظر إلى الجدول، الشرط، وحجم البيانات.
مثال عملي
query.sql
Output:
في بيئة SQLite، ستظهر خطة تشير إلى SEARCH users USING INDEX.
قراءة الخطة — قبل وبعد الفهرس
خرج EXPLAIN QUERY PLAN يتغير بوضوح حين يُضاف فهرس:
بدون فهرس على email:
QUERY PLAN
`--SCAN users
SCAN تعني قراءة كل الجدول — O(n).
مع فهرس على email:
QUERY PLAN
`--SEARCH users USING INDEX idx_users_email (email=?)
SEARCH ... USING INDEX تعني استخدام الفهرس للوصول المباشر.
query.sql
Output:
query.sql
Output:
قِس بعد الخطة
الخطة تساعدك تفهم، لكنها ليست بديلاً عن قياس زمن الاستعلام على بيانات قريبة من الواقع.
تحدي — Challenge
أنشئ فهرساً على email ثم نفذ EXPLAIN QUERY PLAN