بهینه سازی و کم کردن حجم دیتابیس وردپرس
یکی از مسائلی که ممکن است تا امروز در سایت وردپرسی خود با آن مواجه شده باشید، بالا رفتن بی رویه و گاهی غیر قابل کنترل اندازه ی دیتابیس سایت شماست. دلیل اتفاق افتادن این مسئله در واقع اصلا پیچیده نیست و با کمی مدیریت صحیح به سادگی میتوان از اتفاق افتادن آن جلوگیری کرد. در میان انواع مواردی که میتواند حجم دیتابیس شما را بالا ببرد (مانند رونوشت ها، محتوای نگهداری شده در زباله دان، دیدگاه های اسپم، دسته های خالی و …) تمرکز اصلی ما در آموزش کوتاه امروز بر روی Transient هاست. اگر در ادامه با مسترکد همراه باشید، هم در رابطه با Transient ها توضیحات بیشتری ارائه خواهیم کرد و هم روش هایی برای بهینه سازی و کاهش حجم دیتابیس در وردپرس را به شما آموزش خواهیم داد.
Transient ها چه هستند و چرا موجب افزایش حجم دیتابیس میشوند؟
Transient ها در واقع یک روش استاندارد جهت کش کردن اطلاعات در دیتابیس هستند. هر یک از ترنزینت ها برای بازه ی زمانی مشخصی معتبر اند و پس از به پایان رسیدن زمان انقضا، دیگر قابل استفاده نخواهند بود. تا اینجا همه چیز خوب است. حتما میگویید وقتی ترنزینت ها دارای تاریخ انقضا هستند پس دیگر مشکل چیست؟ مشکل اینجاست که یک ترنزینت پس از فرا رسیدن زمان انقضا، تنها در صورتی از دیتابیس حذف میشود که مجددا آن را صدا کنید … اینجاست که پس از مدتی شاهد افزایش حجم دیتابیس خود خواهید بود و طبعا یک دیتابیس حجیم برابر با یک دیتابیس کند هم خواهد بود. در اینجا جدولی که تحت تاثیر Transient ها قرار میگیرد جدول options یا تنظیمات وردپرس است که پس از مدتی تعداد ردیف های آن احتمالا شما را شگفت زده خواهد کرد!
با توجه به این توضیحات، منطق حکم میکند که هر چند وقت یک بار این اطلاعات مثلا موقتی را از دیتابیس خود حذف کنید و روح تازه ای در وجود دیتابیس مبارک بدمید! در ادامه نحوه ی پاک کردن ترنزینت ها را به دو شیوه به شما آموزش میدهیم. روش اول که اندکی پیچیده و حرفه ای تر است را تنها به اشخاصی که دقیقا میدانند چه کار میکنند توصیه میکنیم ولی در روش دوم به سراغ دو افزونه ی ساده و درست و حسابی میرویم و با استفاده از آنها دستی به سر و روی دیتابیس سایتمان میکشیم.
پاک کردن Transient ها مستقیما از طریق phpMyAdmin
در این بخش پیش از اینکه کوچکترین کاری انجام دهید، ابتدا یک بکاپ کامل از دیتابیس یا یک فول بکاپ از سایتتان تهیه کنید تا در صورت بروز مشکل امکان بازگشت به حالت اولیه وجود داشته باشد. در ادامه وارد phpMyAdmin شوید، اطمینان حاصل کنید که دیتابیس صحیح را انتخاب کرده اید (پیش تر در رابطه با استفاده از phpMyAdmin با هم صحبت کرده بودیم) و پس از مراجعه به تب SQL، استیتمنت زیر را بر روی دیتابیس سایتتان اجرا کنید :
1 | DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%'); |
توجه داشته باشید که در کوئری بالا میبایست عبارت wp_options را با نام صحیح این جدول در دیتابیس خود عوض کنید. یعنی اگر برای نصب وردپرس از پیشوند جدول دیگری استفاده کرده اید، عبارت wp را با پیشوند جداول خود جایگزین کنید. در غیر این صورت کوئری اجرا نخواهد شد و با خطا مواجه خواهید شد.
پاک کردن Transient ها و بهینه سازی دیتابیس از طریق افزونه ها
مثل همیشه راهی هم داریم که انتهایش به افزونه ها ختم میشود. اگر استفاده از روش بالا برای شما خوش آیند نیست، میتوانید به سادگی افزونه Transient Cleaner را بر روی سایت خود نصب کرده و از امکانات آن بهره مند شوید. این افزونه ی کوچک، تنها کاری که انجام میدهد، پاک کردن ترنزینت هاست. اما اگر به دنبال افزونه ی کامل تری میگردید که بتواند دیتابیس سایت شما را به طور کامل بهینه سازی کرده و از بالا رفتن بی رویه ی حجم آن جلوگیری کند، در اینجا به شما افزونه WP CleanFix را پیشنهاد میدهیم. استفاده از این افزونه بسیار آسان است اما در هنگام استفاده، حتما یک نکته ی مهم را به خاطر داشته باشید، نکته ی مهم این است که حواستان باشد که به افزونه میگویید چه چیزهایی را پاک کند. مثلا افزونه ممکن است در سایت شما دسته های خالی پیدا کند و به شما پیشنهاد کند که آنها را حذف کنید، بنابراین حسابی حواستان جمع و جور باشد که یک وقت اطلاعات سایتتان را از دست ندهید و تنها مواردی که از بهینه بودن دیتابیس جلوگیری میکند را حذف نمایید. (مانند revision ها، دیدگاه های اسپم، ترنزینت ها و …)
در پایان خواندن آموزش های زیر را نیز توصیه میکنیم :
سلام
شما حجم سایت مارا با توجه به توضیحات تان ، انجا م میدهید ؟
خواهشمند است پاسخ را به ایملم ارسال کنید .
ممنون
سلام
من کلا متوجه منظورتون نشدم.
به طور کلی : پاسخ کامنت ها در همین بخش ارائه میشن و همچنین ما فقط خدمات آموزشی ارائه میکنیم.
این کد به خوبی جواب داد برای سایت من. نیازی به افزونه نیست اصلا.
تشکر از شما بابت این مطلب مفید