رفتن به نوشته‌ها

دسته: Optimization

Explain در MySQL و بهبود کوئری- قسمت اول

بهبود کارایی یک App بسته به شرایط می‌تواند راهکار‌های متفاوتی داشته باشد و در شرایط مختلف نیازمند روش‌های تحلیل مختلف است اما یکی از رایج‌ترین سناریوها برای بهبود سرعت پاسخگویی app ها بهینه‌سازی کوئری‌هایی است که از دیتابیس می‌پرسند، روشی که من معمولا برای این گونه بهینه‌سازی استفاده می‌کنم معمولا چنین گام‌هایی رو شامل میشه:

  1. مشاهده نیاز به بهبود کارایی، (سری که درد نمی‌کنه رو دستمال نمیبندند…نه؟)
  2. پیدا کردن کوئریی که زمانش قابل کاهشه
  3. تحلیل کوئری و لیست کردن راهکار‌های بهبود کوئری
  4. تست کردن راهکارها به ترتیب با کمترین هزینه اجرا و بیشترین تاثیر

در این مجموعه از پست‌ها میخوایم راجع به مرحله سوم صحبت کنیم، یعنی یکی از روش‌های تحلیل کوئری که استفاده از EXPLAIN در MYSQL است.(البته تمام RDBMS‌ها تا جایی که اطلاع دارم دستور مشابه‌ای دارند)

در این پست قصد داریم روی چند تا کوئری مختلف Explain رو اجرا کنیم و خروجی رو بررسی کنیم. منبع مطالبی که عنوان می‌کنم در داک رسمی MySQL در آدرس اینجا و اینجا است، در صورت نیاز به توضیحات دقیق‌تر و بیشتر توصیه می‌کنم حتما داک رو با دقت مطالعه کنید.