EXPLAIN یکی از دستورات قدرتمند MySQL است که برای تحلیل و بهینه‌سازی کوئری‌ها استفاده می‌شود. این دستور اطلاعاتی درباره نحوه اجرای یک کوئری SELECT ارائه می‌دهد و به شما کمک می‌کند عملکرد پایگاه داده را بهبود ببخشید.


فهرست مطالب

  • EXPLAIN چیست؟
  • نحوه استفاده از دستور EXPLAIN
  • مهم‌ترین ستون‌های خروجی دستور EXPLAIN
  • مثال‌هایی از دستور EXPLAIN
  • بهترین شیوه‌ها برای بهینه‌سازی با EXPLAIN
  • مطالعه بیشتر

راهنمای جامع دستور EXPLAIN در MySQL

EXPLAIN چیست؟

دستور EXPLAIN اطلاعات مفصلی در مورد نحوه اجرای یک کوئری SELECT توسط MySQL ارائه می‌دهد. این اطلاعات شامل موارد زیر است:

  • جداولی که در کوئری استفاده می‌شوند.
  • نوع جستجو (Search Type).
  • شاخص‌هایی (Indexes) که به کار گرفته شده‌اند.
  • تخمین تعداد ردیف‌هایی که پردازش خواهند شد.
  • هزینه اجرای کوئری.

این اطلاعات برای شناسایی مشکلات و بهبود عملکرد کوئری‌ها مفید است.


نحوه استفاده از دستور EXPLAIN

برای استفاده از دستور EXPLAIN کافی است عبارت SELECT موردنظر خود را با EXPLAIN شروع کنید. مثال:

EXPLAIN SELECT * FROM users WHERE age > 30;

خروجی دستور EXPLAIN یک جدول است که اطلاعات جزئی درباره نحوه اجرای کوئری نشان می‌دهد.


مهم‌ترین ستون‌های خروجی دستور EXPLAIN

خروجی دستور EXPLAIN شامل چندین ستون است که مهم‌ترین آن‌ها عبارت‌اند از:

  1. id: شماره شناسایی مراحل اجرای کوئری.
  2. select_type: نوع SELECT (مثلاً ساده، زیرکوئری، یا UNION).
  3. table: نام جدولی که در مرحله مربوطه استفاده شده است.
  4. type: نوع پیوند (Join Type). مقادیر رایج:
    • ALL: اسکن کامل جدول.
    • INDEX: استفاده از ایندکس برای اسکن.
    • REF: استفاده از ایندکس برای مقایسه مقادیر.
    • CONST: مقدار ثابت.
  5. possible_keys: ایندکس‌هایی که می‌توانند استفاده شوند.
  6. key: ایندکسی که واقعاً استفاده شده است.
  7. rows: تعداد ردیف‌هایی که برای تولید نتیجه باید اسکن شوند.
  8. Extra: اطلاعات اضافی، مانند “Using where” یا “Using filesort”.

مثال‌هایی از دستور EXPLAIN

1. کوئری ساده:

EXPLAIN SELECT * FROM products WHERE category_id = 5;

خروجی:

idselect_typetabletypepossible_keyskeyrowsExtra
1SIMPLEproductsrefcategory_idcat50Using where

2. استفاده از ایندکس:

EXPLAIN SELECT * FROM orders WHERE order_date BETWEEN '2024-01-01' AND '2024-01-31';

خروجی:

idselect_typetabletypepossible_keyskeyrowsExtra
1SIMPLEordersrangeorder_dateorder_date100Using where

بهترین شیوه‌ها برای بهینه‌سازی با EXPLAIN

  1. ایجاد ایندکس مناسب: اطمینان حاصل کنید که ستون‌های موردنیاز در WHERE، GROUP BY، و JOIN ایندکس شده باشند.
  2. پرهیز از اسکن کامل جدول (ALL): اگر کوئری شما به اسکن کامل جدول نیاز دارد، سعی کنید با افزودن ایندکس این مشکل را رفع کنید.
  3. تحلیل ستون Extra: اگر در ستون Extra عباراتی مانند “Using temporary” یا “Using filesort” مشاهده کردید، ممکن است نیاز به بهینه‌سازی بیشتر باشد.
  4. کوئری‌های پیچیده را بازنویسی کنید: اگر کوئری شما دارای چندین زیرکوئری یا JOIN است، بررسی کنید که آیا می‌توان آن را ساده‌تر نوشت.

مطالعه بیشتر


با استفاده از دستور EXPLAIN و تحلیل دقیق خروجی آن، می‌توانید مشکلات موجود در کوئری‌های خود را شناسایی کرده و عملکرد پایگاه داده را بهبود دهید.

مهرداد یاری

بیش از 15 سال است که به عنوان مربی در آموزشگاه های فنی و حرفه ای فعالیت میکنم و بیش از بیست سال در زمینه it فعالیت دارم . با افتخار در خدمت شما هستم

به اشتراک بگذارید
منتشر شده توسط
مهرداد یاری

پست های اخیر

تفاوت برق AC و DC به زبان ساده

برق یکی از مهم‌ترین اختراعات بشر است که زندگی ما را متحول کرده است. اما… ادامه مطلب

15 ساعت قبل

روشن كردن پاور كامپيوتر بدون مادربرد

برای روشن کردن پاور کامپیوتر بدون استفاده از مادربرد، می‌توانید از یک روش ساده اما… ادامه مطلب

17 ساعت قبل

رنگ سیم‌ها در پاور کامپیوتر

پاور کامپیوتر یکی از اجزای کلیدی سیستم است که وظیفه‌ی تأمین برق برای قطعات مختلف… ادامه مطلب

17 ساعت قبل

مفهوم آمپر، ولتاژ و وات به زبان ساده

آیا تا به حال به این فکر کرده‌اید که برق چگونه وسایل مختلف را روشن… ادامه مطلب

1 روز قبل

استاندارد های پاور کامپیوتر

استاندارد های پاور کامپیوتر معیاری برای تعیین کیفیت، بازدهی و عملکرد پاور است. این استانداردها… ادامه مطلب

2 روز قبل

انتخاب پاور مناسب برای کامپیوتر

پاور (Power Supply Unit) یکی از اجزای اصلی هر سیستم کامپیوتری است که وظیفه تأمین… ادامه مطلب

2 روز قبل