Query Execution Plan برنامهای است که بهینهساز دیتابیس برای اجرای کوئری انتخاب میکند. این برنامه نشان میدهد آیا از ایندکس استفاده میشود، کدام Join انجام میشود و چه تعداد ردیف تخمین زده میشود.
-- MySQL
EXPLAIN SELECT * FROM orders WHERE customer_id = 5;
-- PostgreSQL
EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM orders WHERE customer_id = 5;
پلن اجرا الزاماً بعد از ایجاد ایندکس بهتر نمیشود. گاهی اسکن ترتیبی برای جدول کوچک یا وقتی بخش بزرگی از رکوردها خوانده میشوند، انتخاب مناسبتری است.
اصطلاحات مرتبط: ایندکسینگ، بهینهسازی کوئری، بی تری.
پلن اجرای کوئری را ببینیم
EXPLAIN ANALYZE
SELECT id, total FROM orders
WHERE customer_id = 42;
ساختار و کلیدواژههای EXPLAIN بین دیتابیسها فرق دارد. در PostgreSQL، ANALYZE کوئری را اجرا میکند و در MySQL نسخههای جدید نیز امکان EXPLAIN ANALYZE وجود دارد.