نه!
خیلیها تصور میکنند هرچه روی جدول Index بیشتری داشته باشیم، Queryها سریعتر اجرا میشوند.
اما هر Index یک هزینه هم دارد.
هنگام اجرای:
INSERTو
UPDATEدیتابیس باید Indexهای مربوطه را هم بهروزرسانی کند.
یعنی:
سرعت خواندن ↑
اما:
هزینه نوشتن ↑
از طرفی Indexهای غیرضروری میتوانند:
🔹 فضای بیشتری مصرف کنند
🔹 عملیات Write را کندتر کنند
🔹 هزینه نگهداری بیشتری داشته باشند
🔹 انتخاب Execution Plan را پیچیدهتر کنند
پس Index را فقط بر اساس حدس اضافه نکنید.
اول:
EXPLAINبعد بررسی کنید:
Selectivity → Query Pattern → Execution Plan → Actual Performance
یک Index خوب، Indexی نیست که فقط وجود داشته باشد؛
بلکه Indexی است که با الگوی واقعی Queryهای سیستم هماهنگ باشد.
💡 گاهی حذف یک Index اضافی، بیشتر از اضافه کردن یک Index جدید به Performance کمک میکند.
@CodeVerse_dev