۱۰ ترفند برای تر و تمیز نگه داشتن دیتابیس به منظور افزایش سرعت سایت
اگر برای مدتی از وردپرس استفاده کرده باشید وقت آن است که دیتابیس خود را پاکسازی کنید.
دیتابیس شما ممکن است پر از جداول غیرضروری شده باشد که به اجبار باعث حجیم شدن و کند شدن سایت شما می شود.
پاکسازی منظم باعث می شود که سایز دیتابیس کاهش یابد و این امر به این معنی است که فایلهای بک آپ شما نیز کوچکتر شده و سریعتر ساخته می شوند.
در مقاله امروز نگاهی به چند روش برای پاکسازی دیتابیس از طریق استفاده از کوئریهای ساده SQL می اندازیم که به خوبی پلاگینها عمل می کنند.همچنین نکاتی را برای سایتهای منفرد یا چندگانه ارائه خواهیم داد.
لذا سطل و تی را بردارید و بیایید!
خانه تکانی اولیه
قبل از اینکه شروع به خانه تکانی عید کنید، مهم است که از دیتابیس و فایلهای سایت خود بک آپ بگیرید.
برخی اوقات همه چیز طبق روال پیش نمی رود. لذا نگه داشتن یک کپی اضافه از سایت مفید بوده و به بازیابی صحیح کمک می کند.
حذف پلاگینهای غیرضروری
یکی از آسانترین و موثرترین روشهای کاهش نابسامانی ها در دیتابیس، پاک کردن هر پلاگینی است که استفاده نمی کنید.
اتفاقی که ممکن است برای همه پیش بیاید: علاقه به نصب و امتحان کردن پلاگینهای جدید و فراموشی حذف آنها.
پلاگینها معمولا فضای زیادی از دیتابیس شما را اشغال می کنند لذا حذف غیرضروری ها، مرحله ی مقدماتی و مهم پاکسازی دیتابیس است.
چگونه در دیتابیس تان، فرمانهای SQL را وارد کنید؟
نیاز است که به دیتابیس خود بروید تا به این گزینه های پاکسازی دسترسی یابید. اگر نام کاربری و پسورد دیتابیس تان را به یاد نمی آورید نگران نباشید. چون آنها در فایل wp-config.php شما ذخیره شده اند.
بخشی از کدهای موجود در فایل wp-config.php به شکل زیر است:
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'نام دیتابیس'); /** MySQL database username */ define('DB_USER', 'نام کاربری'); /** MySQL database password */ define('DB_PASSWORD', 'پسورد شما'); /** MySQL hostname */ define('DB_HOST', 'localhost'); /** Database Charset to use in creating database tables. */ define('DB_CHARSET', 'utf8');
همین که وارد phpMyAdmin شدید روی دیتابیس خود که می خواهید پاکسازی اش کنید کلیک کرده و سپس روی تب SQL کلیک کنید.
در این صفحه می توانید کوئری هایی که دوست دارید را وارد نموده و سپس روی دکمه GO کلیک کنید تا اجرا شوند.
اگر پیامی مبنی بر اینکه صفر جدول تحت تاثیر قرار گرفت دریافت کردید، باید بدانید که جداول شما نیازی به آن کوئری خاص ندارند و بهینه هستند و به درستی عمل می کنند.
پاکسازی پلاگینها و متای پست ها
پس از اینکه همه پلاگینهای غیر لازم را پاک کردید، ایده خوبی است تا دیتابیس خود را از اطلاعاتی که آن پلاگینها روی دیتابیس ذخیره کرده اند پاک کنید. این امر شامل حال اطلاعات ذخیره شده توسط پستهای شما نیز می شود.
همه آنها در جدول wp_postmeta قرار دارند و اجرای این کوئری می تواند به خلاصی از شر موارد زاید کمک کند. در کد زیر your-meta-key را با متای مطالبی که می خواهید حذف شود جایگزین کنید. همچنین به جای wp پیشوند دیتابیس خود را وارد کنید.
DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key';
اگر از مولتی سایت استفاده می کنید از کد زیر بهره بگیرید:
DELETE from wp_#_postmeta WHERE meta_key = 'your-meta-key';
در کوئری فوق نیاز است که # را با آی دی سایتی که می خواهید پاکسازی کنید جایگزین نمایید و your-meta-key و wp نیز مثل مورد قبلی.
پاکسازی تمام نظرات اسپم
اگر در سایت خود تعداد زیادی نظر اسپم دارید با استفاده از کوئری زیر همه را پاک کنید:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
برای مولتی سایت از کد زیر استفاده کنید:
DELETE FROM wp_#_comments WHERE comment_approved = 'spam';
فقط # را با آی دی سایتی که می خواهید پاکسازی شود جایگزین کنید.
پاکسازی همه نظراتی که منتظر تایید مدیر سایت هستند.
اگر تعداد زیادی نظر اسپم دارید که آنها را تایید نکرده اید تا به عنوان اسپم شناخته شوند، کوئری زیر می تواند کاری کند که همه نظرات منتظر تایید پاک شوند. فقط اطمینان حاصل کنید که نظرات سالم و قانونی در لیست منتظر تاییدها نباشند و سپس دست به پاکسازی بزنید چرا که در غیر اینصورت این نظرات نیز پاک می شوند:
DELETE FROM wp_comments WHERE comment_approved = '0';
برای مولتی سایت از کد زیر استفاده کنید و به جای # آی دی سایت هدف را بنویسید:
DELETE FROM wp_#_comments WHERE comment_approved = '0';
حذف برچسبهای بدون استفاده
اگر تعداد زیادی برچسب دارید که بدون استفاده مانده اند مفید خواهد بود اگر آنها را پاک کنید. کوئری زیر همه برچسبهایی که حداقل به یک مطلب الصاق نشده باشد را حذف خواهد کرد:
DELETE FROM wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = 'post_tag' AND wtt.count = 0;
برای مولتی سایت نیز از کوئری زیر استفاده کنید و داستان # هم مثل سابق.
DELETE FROM wp_#_terms wt INNER JOIN wp_#_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = 'post_tag' AND wtt.count = 0;
خداحافظی با پینگ بک ها
اگر گزینه پینگ بک را غیرفعال کرده اید و می خواهید دیتابیس را از موارد قبلی پاکسازی کنید کوئری زیر مخصوص این کار است:
DELETE FROM wp_comments WHERE comment_type = 'pingback';
اگر از مولتی سایت استفاده می کنید و می خواهید پینگ بک ها را پاک کنید از کد زیر استفاده کرده و # را با آی دی سایت مورد نظر خود جایگزین کنید:
DELETE FROM wp_#_comments WHERE comment_type = 'pingback';
خلاصی از شر تراک بک ها
وقتی که پینگ بک ها را پاک می کنید چرا پس بگذارید ترک بک ها باقی بمانند؟ کوئری زیر به همین منظور استفاده می شود. احتمالا بهتر است قبل از اجرای کد زیر، پینگ بک و ترک بک را در سایت خود غیرفعال کنید:
DELETE FROM wp_comments WHERE comment_type = 'trackback';
کد مناسب برای مولتی سایت:
DELETE FROM wp_#_comments WHERE comment_type = 'trackback';
حذف رونوشت های مطالب
در سایتهای قدیمی با مطالب و صفحات زیاد، رونوشتها می توانند دیتابیس را سریعا پر کنند. برای پاکسازی آنها کوئری زیر را اجرا کنید:
DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id) LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id ) LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id) WHERE a.post_type = 'revision' AND d.taxonomy != 'link_category';
برای شبکه و مولتی سایت، از کد زیر استفاده کنید:
DELETE a,b,c FROM wp_#_posts a LEFT JOIN wp_#_term_relationships b ON ( a.ID = b.object_id) LEFT JOIN wp_#_postmeta c ON ( a.ID = c.post_id ) LEFT JOIN wp_#_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id) WHERE a.post_type = 'revision' AND d.taxonomy != 'link_category';
حذف شورت کد ها
اگر تعداد زیادی پلاگین نصب کرده اید و سپس آنها را حذف نکرده اید ممکن است تعداد زیادی شورت کد در سایتتان وجود داشته باشد که عملا هیچ عملکردی ندارند. ممکن است حتی از پوسته ای استفاده کرده باشید که حاوی شورت کد بوده است و پس از غیرفعالسازی، تعداد زیادی شورت کد بی استفاده از خود باقی گذاشته باشد. روشی سریع برای پاکسازی شورت کدهای دلخواه شما، استفاده از کوئری SQL زیر است:
UPDATE wp_post SET post_content = replace(post_content, '[your-shortcode]', '' ) ;
برای مولتی سایتهای شبکه، از کد زیر استفاده کنید و # را با آی دی سایت مورد نظر خود جایگزین کنید:
UPDATE wp_#_post SET post_content = replace(post_content, '[your-shortcode]', '' );
دورانداختن همه مطالب قدیمی
اگر سایت شما سالها است که فعالیت دارد ممکن است تعداد بیشماری مطالب تاریخ گذشته داشته باشید که اگر آنها را به کلی پاک کنید احساس بهتری به شما دست بدهد.
از کد زیر استفاده کنید و به سادگی of-days-# را با مدت زمان بر حسب روز که می خواهید پستهایتان پاک شوند جایگزین کنید. برای مثال اگر می خواهید همه پستهای قدیمی تر از چند روز دلخواه پاک شوند عدد مورد نظر را وارد کنید. مثلا عدد ۱۸۲۵ برای پاکسازی مطالب با قدمت ۵ سال.
DELETE FROM `wp_posts` WHERE `post_type` = 'post' AND DATEDIFF(NOW(), `post_date`) > #-of-days
در مولتی سایت از کد زیر استفاد کنید و به جای # آی دی سایت دلخواه خود را وارد نمایید:
DELETE FROM `wp_#_posts` WHERE `post_type` = 'post' AND DATEDIFF(NOW(), `post_date`) > #-of-days
حذف تمام کامنتهای غیرمرتبط
بعضی اوقات جدول wp_commentsmeta پر از نظرات تایید شده غیرمرتبطی می شود که در جدول wp_comments ذخیره نشده اند. کوئری زیر ممکن است برای همه کاربردی و مناسب نباشد و در برخی اوقات می تواند حتی مشکل آفرین نیز باشد مخصوصا اگر از پلاگینی استفاده می کنید که از جدول wp_commentsmeta استفاده می کند. لذا با احتیاط از این کد استفاده کنید.
SELECT * FROM wp_commentmeta WHERE comment_id NOT IN ( SELECT comment_id FROM wp_comments );
اگر می خواهید جدول wp_commentsmeta را در مولتی سایتهای شبکه خود نیز پاک کنید از کد زیر استفاده کنید و # را با آی دی سایت مدنظر جایگزین نمایید.
SELECT * FROM wp_#_commentmeta WHERE comment_id NOT IN ( SELECT comment_id FROM wp_#_comments );
بهینه سازی جداول شما
با چند کلیک می توانید بدون استفاده از پلاگین جداول خود را بهینه سازی کنید.
نیازی نیست که همه جداول بهینه سازی شود. می توانید فقط جداول حجیم را بهینه کنید.
در phpMyAdmin روی نام دیتابیس خود کلیک کنید و سپس از سمت راست به پایین صفحه بروید. تیک Check All را فعال کنید تا همه جداول انتخاب شوند و سپس از منوی کشویی روبروی آن، گزینه Optimize table را انتخاب کنید. اگر چندین صفحه جدول دارید باید در هر صفحه این کار را تکرار کنید.
پیام success در صفحه به شما نشان داده خواهد شد که در آن نوشته است برخی جداول از بهینه سازی پشتیبانی نمی کنند. این پیام معمولا نرمال است.
نیازی نیست که روی دکمه Go کلیک کنید چون همه چیز به صورت اتومات انجام خواهد شد. اگر سایتتان بزرگ باشد ممکن است اجرای مورد فوق زمان بر باشد لذا نگران نشوید. پس از پایان کار، پیام موفقیت آمیز بودن عملیات به نمایش در خواهد آمد.
ترفندهای خانه تکانی بهاره دیتابیس به پایان رسید. چندین پلاگین نیز برای بهینه سازی و پاکسازی دیتابیس وجود دارند که می توانید از مخزن وردپرس روی سایت خود نصب کنید و دیتابیس را بهینه کنید.
امیدواریم از این مقاله نیز کمال استفاده را برده باشید. در صورتی که روش های دیگری برای پاکسازی دیتابیس می شناسید با ما در میان بگذارید. سوالی نیز اگر به ذهنتان رسید بپرسید.