راهنمای حل مشکل افزایش ناگهانی حجم جدول xf_search در زنفورو

🌙
شب بخیر!

برای ارسال پیام، چت خصوصی، یا دانلود فایل‌ها، کافیه ثبت‌نام کنی.

📝 ثبت‌نام کن و شروع کن

Sina

Administrator
پرسنل مدیریت
2013-05-11
4,770
2,907
113
چابکســـر، سرزمین پارس
اگه متوجه شدید که حجم دیتابیس انجمنتون یهو و بدون دلیل مشخصی زیاد شده، و بعد از چک کردن دیدید که جدول xf_search مقصر اصلیه (گاهی حتی چند صد مگابایت تا چند گیگابایت!)، این راهنما براتون کاربردیه.

علائم مشکل​

  • حجم کلی دیتابیس انجمن بدون افزایش محتوای متناسب، به‌شدت بالا رفته
  • با چک کردن جداول از طریق phpMyAdmin، جدول xf_search حجم غیرعادی و بزرگی داره (حتی اگه تعداد ردیف‌هاش خیلی زیاد نباشه، چون حجم بالا)
نکته مهم: جدول xf_search با جدول xf_search_index فرق داره:
  • xf_search_index → ایندکس اصلی محتوای انجمن برای جستجو​
  • xf_search → کش نتایج جستجوهای انجام‌شده توسط کاربران و مهمان‌ها​
مشکل حجم بالا معمولاً مربوط به همین جدول دوم (کش سرچ) هست، نه ایندکس محتوا.

چرا این جدول حجیم می‌شه؟​


هر بار کسی توی انجمن سرچ می‌زنه، نتیجه‌ی اون سرچ به‌صورت یک ردیف (شامل داده‌ی سریالایزشده از نتایج) توی این جدول ذخیره می‌شه تا صفحه‌بندی نتایج سریع‌تر انجام بشه. چند تا دلیل رایج برای حجیم شدن غیرعادی این جدول:

  1. سرچ‌های عمومی یا خیلی پرنتیجه - اگه کسی کلمه‌ای بسیار رایج یا حتی سرچ خالی زده باشه که خروجیش تقریباً کل محتوای انجمنه، همون یک ردیف می‌تونه چندین مگابایت تا حتی چند صد مگابایت فضا بگیره.
  2. ترافیک بالای سرچ توسط مهمان‌ها (Guest) - اگه امکان جستجو برای کاربران مهمان فعال باشه، هر بازدیدکننده (از جمله ربات‌ها و اسکرپرها) می‌تونه ردیف جدید توی این جدول ایجاد کنه.
  3. حمله یا اسکرپینگ خودکار - ربات‌هایی که مدام صفحه‌ی سرچ رو با کوئری‌های تصادفی یا متفاوت هدف می‌گیرن، می‌تونن در مدت کوتاه این جدول رو غول‌پیکر کنن.
  4. کرون‌جاب پاکسازی که به‌درستی اجرا نمی‌شه - زنفورو یه وظیفه‌ی زمان‌بندی‌شده به اسم «Rebuild expired search forum caches» داره که باید این جدول رو به‌صورت دوره‌ای پاکسازی کنه. اگه به هر دلیلی (مشکل کرون سرور هاست و...) این کرون درست اجرا نشه، جدول بدون کنترل رشد می‌کنه.

راه‌حل​

⚠️ نکته مهم قبل از شروع​

  • حتماً قبل از هر تغییری از دیتابیس بک‌آپ بگیرید.
  • عملیات زیر کاملاً امنه و هیچ پست/تاپیک/محتوایی حذف نمی‌شه، چون xf_search فقط یک جدول کش موقته.

مرحله ۱ - چیزی که معمولاً جواب نمی‌ده​

گزینه «بازسازی ایندکس جستجو» از مسیر:

ACP > Tools > Rebuild Search Index
و همچنین دستور OPTIMIZE TABLE xf_search; معمولاً کمکی نمی‌کنن، چون این‌ها روی جدول xf_search_index اثر می‌ذارن، نه روی جدول کش (xf_search) که مشکل واقعی اونجاست.


مرحله ۲ - راه‌حل قطعی: خالی کردن جدول کش​

از طریق phpMyAdmin:
  1. دیتابیس انجمنتون رو انتخاب کنید
  2. برید به تب SQL
  3. این کوئری رو اجرا کنید:
کد:
TRUNCATE TABLE xf_search;

بعد از اجرا، حجم جدول فوراً به حالت قبل برمی‌گرده و دیتابیس به حجم واقعی خودش می‌رسه. تنها اثرش اینه که کاربرا باید دوباره سرچ کنن، همین.

📌 اگه پنل هاستتون حجم دیتابیس رو با تأخیر نشون می‌ده (مثلاً phpMyAdmin درست شده ولی آمار هاست هنوز عدد قدیمی رو داره)، نگران نباشید این معمولاً به‌خاطر کش آمار مصرف دیسک هاستینگه و خودش تا ۲۴ ساعت آپدیت می‌شه.

مرحله ۳ - چک کردن کرون‌جاب مربوطه​


برای جلوگیری از تکرار مشکل، برید به:

ACP > Tools > عملیات برنامه‌ریزی‌شده (Cron Entries)

دنبال گزینه‌ی «Rebuild expired search forum caches» بگردید و مطمئن بشید:
  • فعاله
  • زمان «اجرای بعدی» بعد از گذشت زمانش، واقعاً جلو می‌ره (یعنی کرون سرور هاست هم داره درست فایل cron.php زنفورو رو صدا می‌زنه)
اگه این کرون غیرفعال بود یا زمانش هیچ‌وقت آپدیت نمی‌شد، با پشتیبانی هاست تماس بگیرید و بخواید وضعیت اجرای کرون سرور رو بررسی کنن.

اقدام پیشگیرانه (فقط در صورت احتمال حمله یا ترافیک غیرعادی سرچ)​

اگه بعد از پاکسازی، جدول دوباره و به‌سرعت شروع به بزرگ شدن کرد مخصوصاً اگه به لاگ‌های سرور یا آمار بازدید نگاه کردید و مشکوک به فعالیت ربات/اسکرپر یا حمله شدید بهتره محض احتیاط امکان جستجو رو برای کاربران مهمان (Guest) غیرفعال کنید


⚠️ این کار رو فقط در صورتی انجام بدید که واقعاً به حمله یا ترافیک غیرعادی مشکوکید، چون غیرفعال کردن سرچ برای مهمان‌ها روی تجربه‌ی کاربری و حتی سئوی انجمن (در بعضی موارد) اثر می‌ذاره. اگه صرفاً یه انباشتگی عادی و طبیعی بوده (که با کرون فعال دیگه تکرار نمی‌شه)، نیازی به این کار نیست.
 

درباره ما

  • انجمن یه‌حس‌خوب در اردیبهشت سال 1392 با هدف ایجاد یک شبکه اجتماعی شامل موضوعات سرگرمی، علمی، دانشگاهی، فناوری و ... شروع بکار کرد و بیش از یک دهه آنلاین است. این مجموعه کاربرمحور بوده و اعضای آن در طول این سال‌ها تجارب خود را برای شما بازدیدکنندگان عزیز به اشتراک گذاشتند. این مجموعه دارای نظارت 24 ساعته بوده تا محیطی سالم را برای کاربران خود فراهم آورد، از کاربران انتظار می رود که با رعایت قوانین ما را برای رسیدن به این هدف یاری نمایند.

منوی کاربر