پایگاه داده بزرگ لزوماً کند نیست و دیتابیس کوچک هم الزاماً سریع نیست. مسئله زمانی شکل میگیرد که Query پرتکرار بدون Index مناسب اجرا شود، گزینههای حجیم در هر درخواست بارگذاری شوند یا جدولهای وظایف و لاگ بیوقفه رشد کنند. بهینهسازی باید از اندازهگیری شروع شود، نه از فشردن دکمه «پاکسازی همه».
قبل از پاکسازی، خط مبنا بسازید
اندازه کل، پنج جدول بزرگ، زمان Queryهای کند و حجم گزینههای autoload را ثبت کنید. سرعت چند صفحه ثابت، مدیریت و یک عملیات پویا مانند جستوجو را اندازه بگیرید. اگر بعد از پاکسازی عددی برای مقایسه ندارید، نمیدانید نتیجه واقعی بوده یا فقط فضای دیسک کم شده است.
دادههایی که معمولاً قابل بررسیاند
- Revisionهای بسیار قدیمی، پیشنویس خودکار و زبالهدان پس از تأیید سیاست محتوا؛
- Transientهای منقضی که سازوکار تولید دوباره دارند؛
- Sessionها، لاگها و صفهای تکمیلشده براساس سیاست نگهداری همان افزونه؛
- متای یتیم پس از اطمینان از حذف محتوای اصلی؛
- جدول افزونه حذفشده، فقط پس از شناسایی مالک و تهیه Backup.
رکورد ناشناخته را صرفاً بهدلیل قدیمی بودن حذف نکنید. بعضی افزونهها تنظیمات یا نگاشتهای لازم را سالها بدون تغییر نگه میدارند.
گزینههای autoload را هوشمندانه بررسی کنید
گزینه autoload در بسیاری از درخواستها خوانده میشود. یک مقدار سریالشده بزرگ یا کش رهاشده میتواند حافظه و زمان پاسخ را بالا ببرد. ابتدا نام گزینه و افزونه مالک را پیدا کنید. تغییر مستقیم مقدار autoload بدون شناخت الگوی مصرف ممکن است درخواستهای بیشتری به دیتابیس تحمیل کند.
Query کند را در سطح علت اصلاح کنید
اگر گزارش نشان میدهد یک Query خاص بارها اجرا میشود، تعداد فراخوانی، شرطها و Index را بررسی کنید. گاهی مشکل از Loop قالب است که متای هر نوشته را جدا میخواند؛ گاهی از فیلتر مدیریتی بدون صفحهبندی. Object Cache میتواند بار تکراری را کم کند، اما Query اشتباه را به طراحی درست تبدیل نمیکند.
فرایند ایمن اجرا
- Backup دیتابیس را بگیرید و بازیابی آن را بدانید.
- عملیات را ابتدا روی Staging با حجم مشابه اجرا کنید.
- پاکسازی را به دستههای کوچک تقسیم کنید.
- بعد از هر مرحله، خطا و مسیرهای تجاری را بررسی کنید.
- در پایان جدولهای مناسب را Optimize کنید؛ نه اینکه این فرمان را بیدلیل روزانه اجرا کنید.
جلوی رشد دوباره را بگیرید
برای لاگ و صف، زمان نگهداری تعریف کنید. افزونه حذفشده را با روش رسمی خودش پاک کنید و سلامت Cron را زیر نظر بگیرید. رشد ماهانه جدولها را گزارش دهید؛ افزایش ناگهانی بسیار زودتر از کندی محسوس، مشکل را نشان میدهد.
بهینهسازی موفق دیتابیس یعنی هر بایت حذفشده دلیل مشخص و هر بهبود سرعت اندازه قابل مقایسه داشته باشد.



