بهینه سازی دیتابیس وردپرس بصورت دستی و با افزونه
در این مقاله قصد داریم اهمیت و نحوه بهینه سازی پایگاه داده وردپرس، را با کمک افزونه و بدون افزونه توضیح دهیم.
پایگاه داده وردپرس چیست؟
پایگاه داده ی وردپرس مثل یک کشوی طبقه ای است که تمام اطلاعات سایت شما در آن قرار می گیرد.
محتوای وب سایت، شامل پست ها، نظرات، برگه ها، تنظیمات قالب و پلاگین، پیش نویس پست ها، نسخه ویرایش شده همه ی نوشته ها ، برچسب های استفاده نشده، به روز رسانی ها و … در پایگاه داده ذخیره می شوند. پس هر زمان شما یک مطلب جدید منتشر کنید، نظری دریافت کنید، افزونه ای نصب می کنید یا تنظیماتی در هر نقطه وب سایت خود انجام بدهید، پایگاه داده درگیر خواهد شد.
مزایای بهینه سازی پایگاه داده وردپرس
اگر شما مدتی از وردپرس استفاده کنید، خواهید دید که پایگاه داده شما پر از اطلاعاتی می شود که به آنها نیازی ندارید، به عنوان مثال جداول مربوط به پلاگین یا قالبی که سال ها پیش آن را حذف کرده اید، هنوز در پایگاه داده شما ذخیره شده است.حتی گاهی بیشتر از پنجاه درصد حجم پایگاه داده شامل چنین اطلاعات زایدی است.
این داده های غیر ضروری حجم زیادی از پایگاه داده شما را اشغال خواهند کرد و روی عملکرد وب سایت شما اثر منفی خواهند گذاشت.از جمله کاهش سرعت سرور و کاهش سرعت بارگذاری سایت ( لود شدن سایت)، افزایش سایز و زمان بکاپگیری (فایل پشتیبان) و بازگردانی (Restore) را می توان نام برد.
تغییر سرعت وب سایت با بهینه سازی پایگاه داده وردپرس
تمیز کردن پایگاه داده وردپرس، سرعت سایت وردپرسی را افزایش می دهد و تهیه فایل پشتیبان را آسان تر خواهد کرد پس پیشنهاد می شود متناسب با فعالیت خود و میزان ارسال پست، در فواصل زمانی معین اقدام به پاک کردن پایگاه داده بکنید.
? قبل از پاک کردن پایگاه داده، یک نسخه پشتیبان از پایگاه داده وردپرس تهیه کنید تا در صورت ایجاد هر مشکلی، بتوانید اطلاعات وب سایت خود را بازیابی کنید.
سرعت لود شدن سایت خود را قبل و بعد از بهینه سازی پایگاه داده به وسیله ابزار https://gtmetrix.com یا https://tools.pingdom.com (دومی با فیترشکن باز می شود) بررسی کنید و تفاوت را ببینید.
بهینه سازی پایگاه داده وردپرس
مرحله اول : حذف موارد غیر لازم از طریق پیشخوان وردپرس
قبل از بهینه سازی پایگاه داده، از طریق داشبورد وردپرس یا پیشخوان وردپرس یا همان پنل مدیریتی وردپرس ، دیدگاه های اسپم ، برگه ها، نوشته ها، قالب ها و پلاگین ها، برچسب ها و دسته هایی که از انها استفاده نمی کنید را از طریق پیشخوان وردپرس پاک کنید. با این کار اندازه جداول پایگاه داده شما کاهش خواهد یافت و به ترتیب جداول wp-comments و wp-commentmeta (مربوط به کامنت ها) wp-postmeta و wp-posts(مربوط به انواع نوشته ها) wp-options (اطلاعات قالب ها وپلاگینها) wp-term ، wp-term-relationships و wp-term-taxonomy (اطلاعات مربوط به دسته بندی و برچسب ها) کاهش سایز خواهند داد. اگر چه یکی از موثرترین راه ها برای تمیز کردن پایگاه داده، حذف قالب ها و پلاگین هایی است که استفاده نمی کنید اما پاک کردن برخی پلاگین ها و قالب ها، جداول و اطلاعات مربوط به آن ها پاک نخواهد شد و شما باید به صورت دستی اقدام به پاک کردن این جداول در دیتابیس بکنید.
مرحله دوم : بکاپ گیری
حالا که موارد اضافی در پیشخوان را حذف کردید و قصد بهینه سازی پایگاه داده را دارید، قبل از بهینه سازی پایگاه داده، یک بکاپ کامل از سایت خود تهیه کنید، زیرا هر گونه خطا ممکن است، کل سایت شما را خراب کند. برای بکاپ گرفتن می توانید از افزونه های بکاپ گیری استفاده نمایید. من افزونه UpdraftsPluse (دانلود از مخزن وردپرس) را توصیه می کنم. برای اطلاعات بیشتر مطلب معرفی افزونه های ضروری و کاربردی وردپرس را مطالعه فرمایید.
مرحله سوم : انتخاب روش بهینه سازی پایگاه داده وردپرس
حالا که مرحله اول و دوم ، یعنی موارد غیر ضروری را حذف کردید و بکاپ گیری را انجام دادید، برای بهینه سازی پایگاه داده باید یکی از روش های زیر را انتخاب کنید و اقدام به بهینه سازی و تمیز کردن پایگاه داده کنید.
- از طریق کنترل پنل هاست خود و phpMyAdmin
- اجرای کوئری های SQL
- افزونه های بهینه سازی پایگاه داده وردپرس (روش ترجیحی)
در ادامه هر سه روش را توضیح داده ایم.
روش اول) بهینه سازی پایگاه داده وردپرس به وسیله phpMyAdmin (روش دستی)
پایگاه داده وردپرس عموما MySQL است و phpMyAdmin متداول ترین راه برای مدیریت پایگاه داده وردپرس هست. برای دسترسی به phpMyAdmin به کنترل پنل هاست خود مراجعه کنید.
مرحله اول بهینه سازی دستی
در سی پنل مانند شکل زیر از بخش databases قسمت phpmyadmin را انتخاب کنید. و در دایرکت ادمین مطابق شکل زیر بخشphpmyadmin را انتخاب نمایید.
در سی پنل:
در دایرکت ادمین:
مرحله دوم بهینه سازی دستی
در گوشه سمت چپ همه ی دیتابیس ها را می بینید. دیتابیس مورد نظر خود را که وردپرس را روی آن نصب کرده اید و قصد بهینه سازی آن را دارید انتخاب کنید.
مرحله سوم بهینه سازی دستی
با انتخاب پایگاه داده وردپرس مانند شکل زیر جداول پایگاه داده را مشاهده می کنید.
وردپرس هم اکنون از 12 جدول اصلی در پایگاه داده خود استفاده می کند. که البته ممکن است در آینده تغییر کند. بسیاری از وب سایت های وردپرسی (مانند شکل بالا) ، ده ها جدول داده دیگر دارند که به دلیل تنظیمات قالب و پلاگین ایجاد شده است. چون پلاگین ها و قالب ها، تنظیمات و سایر اطلاعات را در پایگاه داده ذخیره می کنند.
توضیح اجمالی جداول پایگاه داده
نام جدول | اطلاعات موجود در جدول |
WP-Commentsو WP-Comment meta |
ذخیره کامنتها و اطلاعات جانبی کامنت ها |
WP-Option |
گزینه های تعریف شده در پنل مدیریتی را ذخیره می کند. افزونه ها و قالب ها نیز تنظیمات را در این بخش ذخیره می نمایند. |
WP-Posts و WP-Post meta |
ذخیره ی داده های پست ها و برگه ها و اطلاعات متای مربوط به آن |
WP-Terms و wp_termmeta | ذخیره ی برچسب ها و دسته بندی ها و اطلاعات تکمیلی |
WP-Term-Taxonomy |
ذخیره طبقه بندی(تاکسونومی)ها منظور از تاکسونومی دسته و برچسب نوشته ها، دسته های محصولات، برچسب محصولات و این نوع طبقه بندی ها در وردپرس می باشد. |
WP-terms-relation ships |
ارتباط بین پست ها با برچسب و دسته بندی ها و طبقه بندی ها |
WP-Links | محل ذخیره پیوندها که در نگارش های جدید منسوخ شده است. |
WP-User و WP-User meta |
ذخیره اطلاعات کاربران و اطلاعات متا کاربران |
مرحله چهارم بهینه سازی دستی
مانند شکل زیر 1) ابتدا پایگاه داده مورد نظر را انتخاب کردیم (در اینجا پایگاه داده وردپرس ما با نام iranadmins است) ، 2) تب Structure را انتخاب کنید. 3) جدول مورد نظرتان را مطابق توضیحات قبل برای بهینه سازی انتخاب کنید. اگر قصد بهینه سازی کل جداول ذکر شده در بالا را دارید، تیک گزینه Check all را بزنید تا همه ی جداول را انتخاب کند.4) سپس Optimize table را انتخاب کنید.
این عمل متناسب با اندازه پایگاه داده شما، ممکن است چندین ثانیه زمان ببرد.
نمایش پیام Your SQL query has been executed successfully به معنی موفقیت آمیز بودن است.
روش دوم) بهینه سازی پایگاه داده به وسیله اجرای کوئری های SQL
اگر چه phpMyAdmin به صورت اتوماتیک جداول پایگاه داده را بهینه خواهد کرد، اما شما می توانید از دستورات زیر نیز استفاده کنید.
برای این کار، مانند شکل زیر 1) ابتدا پایگاه داده مورد نظر خود را انتخاب نمایید. 2) روی تب SQL کلیک کنید.3) در این قسمت کامنت SQL زیر را وارد کنید.
1 |
OPTIMIZE TABLE wp_posts |
این دستور برای بهینه سازی کامل جداول به کار می رود. در صورتی که پیشوند جداول شما عبارتی جز wp است ، پیشوند جدول خود را جایگزین wp در عبارت wp-post کنید. 4) و دکمه Go را بزنید تا اجرا شوند.
پیام سبز رنگ Your SQL query has been executed successfully مانند شکل زیر، به معنی اجرای موفق دستور و بهینه سازی کامل جداول است.
مجددا تاکید می کنم که توجه نمایید که کامنت هایی که در این بخش نوشته شده است با پیشوند wp_ هستند. در صورتی که پیشوند جداول پایگاه داده شما متفاوت است به جای wp_ پیشوند جداول خودتان را جایگزین کنید. به عنوان مثال در شکل زیر پیشوند جداول wp است.
دیگر دستورات SQL به شرح زیر می باشند:
برای حذف کردن همه ی ویرایش های پست ها
همانطور که می دانید، هنگامی که مشغول نوشتن یک پست در وردپرس هستید، وردپرس به صورت خودکار هر چند ثانیه یکبار پیش نویس نوشته ی شما را ذخیره می کند و چندین ویرایش از یک پست در پایگاه داده شما ذخیره خواهد شد، اگر شما قصد حذف کردن همه نسخه های رونوشت را دارید این کوئری را اجرا کنید.
1 2 3 4 5 6 7 |
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'; |
دستوراتی برای مدیریت کامنت ها
اگر به پیشخوان وردپرس، بخش دیدگاه ها مراجعه کنید خواهید دید که دیدگاه هایی که کاربر برای سایت شما ارسال می کند در حالت در انتظار تایید خواهند بود تا زمانی که شما آن ها را بپذیرید و در سایت شما به نمایش در آیند. یا اینکه آنها را به لیست دیدگاه های جفنگ منتقل کنید. برای پاک کردن همه کامنتهای اسپم دستور زیر را وارد کنید.
1 |
DELETE FROM wp_comments WHERE comment_approved = 'spam' |
برای پاک کردن همه کامنتهای در انتظار تایید دستور زیر را وارد کنید.
1 |
DELETE FROM wp_comments WHERE comment_approved = '0' |
البته مدیریت کامنت ها به وسیله افزونه های ضد اسپم مانند آکیسمت سریعتر و آسانتر خواهد بود.
دستوری برای پاک کردن تگ های استفاده نشده
بسیار پیش خواهد آمد که برچسبی را برای یک پست می نویسید ولی بعد نظرتان عوض می شود و آن را تصحیح می کنید. ولی این برچسب ها در پایگاه داده شما ذخیره خواهند شد. کوئری زیر، برچسب هایی که در هیچ پستی استفاده نکرده اید را پاک خواهد کرد.
1 2 3 |
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 ); DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms); DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy); |
پاک کردن پینگ بک و ترک بک
ترک بک یا Track back لینک هایی است که توسط سایر وبسایت ها و لینک ها در سایت شما ایجاد می شود و به وبلاگنویس ها امکان ارتباط با سایتها را میدهد. پینگ بک یا pingback لینک هایی است که به صورت اتوماتیک از سمت مقالات وبسایت خودتان دریافت می کنید و به نرم افزارها توانایی ارتباط با سایتها را میدهد.متاسفانه بیشتر پینگ بک و ترک بک ها اسپم بوده و توسط اسپمرها ارسال می شوند.
1 2 |
DELETE FROM wp_comments WHERE comment_type = 'pingback'; DELETE FROM wp_comments WHERE comment_type = 'trackback'; |
پاک کردن شورت کد پلاگین های حذف شده
گاهی شما از یک پلاگین شورت کد استفاده کرده و حالا آن را پاک کرده اید. مسلما شورت کدهایی که در نوشته های شما به نمایش در می آیند، ظاهر نوشته شما را خراب می کنند. حذف دستی و ویرایش تک تک نوشته ها هم کار سختی خواهد بود اگر که تعداد نوشته های شما زیاد باشد. شما می توانید از کوئری زیر استفاده کنید.
1 |
UPDATE wp_posts SET post_content = replace(post_content, '[شورت کد مورد نظر ]', '' ) ; |
TRANSIENTS یا رکوردهای گذرا
Transient ها یک روش ساده و استاندارد جهت کش کردن اطلاعات در دیتابیس هستند. ترنزینت ها زمان انقضای مشخص دارند. رکوردهای گذرا ایجاد شده توسط وردپرس و پلاگینها فضای زیادی را اشغال می کنند. برای حذف Transient به صورت امن از کوئری زیر استفاده کنید.
1 |
DELETE FROM wp_options WHERE option_name LIKE ('%\_transient\_%') |
روش سوم) بهینه سازی پایگاه داده وردپرس با افزونه
اگر چه بهینه سازی پایگاه داده وردپرس به صورت دستی آسان است اما باید همیشه و به طور مرتب به یاد داشته باشید که این کار را انجام بدهید. یک افزونه به طور مرتب و با عملکردی بهتر و ایمن تر و کیفیت بالاتری نسبت به روش دستی این کار را به صورت خودکار انجام می دهد. افزونه های بهینه سازی پایگاه داده جداول اضافی را در پایگاه داده شما پاک می کنند، پس برای تمیز کردن و بهینه سازی پایگاه داده به صوت خودکار و منظم می توانید از این افزونه ها استفاده کنید.
- Wp-optimize برای دانلود افزونه از مخزن وردپرس کلیک کنید.
- Wp-sweep برای دانلود افزونه از مخزن وردپرس کلیک کنید.
- Wp-DB manager برای دانلود افزونه از مخزن وردپرس کلیک کنید.
- Wp-clean up برای دانلود افزونه از مخزن وردپرس کلیک کنید.
- Wp-rocket (افزونه غیررایگان است)
- Advanced Database Cleaner برای دانلود افزونه از مخزن وردپرس کلیک کنید.
- Optimize Database after Deleting Revisions برای دانلود افزونه از مخزن وردپرس کلیک کنید.
بهترین افزونه بهینه سازی پایگاه داده وردپرس چیست؟
اما از بین افزونه های نامبرده کدام یک را انتخاب کنیم؟ در حال حاضر، پاسخ WP-Optimize و Wp-rocket است.
WP-OPTIMIZE محبوب ترین افزونه بهینه سازی پایگاه داده است که پیش نویش پست ها، ویرایش ها، کامنت های اسپم، کامنت های تایید نشده، سطل زباله، , transient options, pingbacks, trackbacks و … را حذف می کند. این افزونه بهینه سازی پایگاه داده را بسیار آسان و سریع و با عملکرد بسیار بهتری انجام می دهد. افزایش سرعت سایت و کاهش حجم پایگاه داده با استفاده از این افزونه نسبت به سایر افزونه ها بسیار قابل توجه است. بهینه سازی پایگاه داده را به طور خودکار به صورت روزانه، هفتگی، ماهانه و هر دو هفته یکبار می توان تنظیم کرد. این افزونه رایگان و از مخزن وردپرس قابل دانلود است.
افزونه های Wp-rocket افزونه محبوب دیگری است که نسخه رایگان نداشته و باید از منابع معتبر اقدام به خرید آن کنید. این افزونه هم پایگاه داده را به صورت خود کار روزانه، هفتگی یا ماهانه تمیز خواهد کرد. و از لحاظ سهولت استفاده و بهینه سازی پایگاه داده به خوبی عمل می کند.
اگر به هر دلیلی قصد استفاده از این دو افزونه را ندارید، افزونه های زیر جایگزین مناسبی خواهند بود.
Optimize Database after Deleting Revisions
Wp-sweep
Advanced Database Cleaner
حذف کامل جدول های اضافه در پایگاه داده ( پاک کردن کامل جداول )
یک مشکل جدی که همیشه وجود دارد حذف جدول های اضافی در پایگاه داده و پاک کردن همیشگی آنها است. همان طور که گفته شد، هنگامی که پلاگین های متعددی نصب می کنید، چندین جدول در پایگاه داده شما ایجاد می کنند. با حذف پلاگین ، جداول مرتبط با آن ها حذف نخواهد شد. حتی افزونه های بهینه سازی پایگاه داده، مثل wp-option یا wp-rocket هم نمی تواند آنها را حذف کنند. البته این جدول ها تنظیمات پلاگین را در خود ذخیره می کنند و در فعال کردن مجدد پلاگین در آینده، این تنظیمات حفظ خواهند شد اما اگر افزونه هایی را پاک کرده اید و حالا قصد دارید، جداول مربوط به آن را نیز کاملاً پاک کنید، می توانید این کار را به صورت دستی ، یا با استفاده از افزونه Plugins Garbage Collector (دانلود افزونه از مخزن وردپرس) انجام دهید. برای آموزش افزونه و کسب اطلاعات بیشتر، حذف کامل افزونه وردپرس را مطالعه بفرمایید.
ترفندهایی برای جلوگیری از ورود اطلاعات بی ارزش به پایگاه داده وردپرس
حتی اگر پایگاه داده خود را بهینه سازی کرده اید، هنوز کارتان تمام نشده است. چون در آینده دوباره پایگاه داده شما پر از اطلاعات غیر ضروری خواهد شد. از آنجایی که پیشگیری بهتر از درمان است، پس باید از ترفندهای زیر برای جلوگیری از ثبت این اطلاعات استفاده کنید.
در کنترل پنل سی پنل یا دایرکت ادمین، 1) ابتدا File manager را انتخاب نمایید. 2) سپس پوشه public_html را انتخاب کنید. 3) در پوشه public_html فایل wp-config.php را می بینید. روی آن کلیک راست کنید و Edit را انتخاب کنید.
سپس خط کد های زیر که در ادامه آورده شده است را وارد کنید و دکمه save change را بزنید.
1) ویرایش پست ها
وردپرس همه نسخه های ویرایش شده نوشته شما را ذخیره می کند. ذخیره ی یک نسخه ویرایش شده بسیار ضروری است ودر صورت بروز مشکل به شما کمک خواهد کرد تا نوشته را بازیابی کنید. اما باید توجه کنید که ذخیره تعداد زیاد نسخه بازبینی یک نوشته، مورد نیاز ما نخواهد بود و پایگاه داده شما را هم پر خواهد کرد.
1 |
define( 'WP_POST_REVISIONS', 3 ); |
بدین ترتیب وردپرس فقط سه نسخه آخر را ذخیره می کند. شما می توانید عدد را تغییر بدهید. در صورتی که مقدار false را مانند کد زیر قرار دهید، ویژگی ذخیره رونوشت غیر فعال می شود.
1 |
define ( 'WP_POST_REVISIONS' , false); |
شاید تعجب خواهید کرد با همین یک عمل ساده، حجم پایگاه داده شما تا بیش از 50 درصد هم کاهش خواهد یافت.
2)ذخیره خودکار
وردپرس به صورت اتوماتیک هر 60 ثانیه، نوشته شما را ذخیره می کند، دخیره اتوماتیک هنگاهی که تصادفا مرورگر شما بسته شود و یا اتصال اینترنت شما قطع شود، بسیار مفید و کمک کننده خواهد بود. برای جلوگیری از پر شدن پایگاه داده شما می توانید این مدت زمان را تغییر بدهید. در کد زیر ما زمان 160 ثانیه را قرار دادیم و شما می توانید این مقدار را به دلخواه تغییر بدهید.
1 |
define( 'AUTOSAVE_INTERVAL', 160 ); // Seconds |
مقدار false این ویژگی را غیر فعال می کند.
1 |
define( 'WP_AUTO_UPDATE_CORE', false ); |
3) زباله ها
وقتی شما یک برگه،نوشته، لینک، کامنت و تصویر را پاک می کنید، به سطل زباله منتقل می شود. وردپرس سطل زباله شما را هر 30 روز یکبار خالی می کند. در صورتی که فایلی را اشتباهی پاک کرده اید از این طریق قابل بازیابی می باشد. اما شما می توانید این دوره را کاهش بدهید تا محتویات سطل زباله روی هم انباشته نشود و پایگاه داده شما را پر نکند.
تخلیه سطل زباله هر 5 روز
1 |
define( 'EMPTY_TRASH_DAYS', 5 ); // 5 days |
با کد زیر سطل زباله غیر فعال می شود و آنچه را پاک می کنید به طور کلی حذف می شود. این کار توصیه نمی شود چون در صورت پاک کردن اشتباهی یک فایل امکان بازگرداندن آن وجود ندارد.
1 |
define( 'EMPTY_TRASH_DAYS', 0 ); // Zero days |
سخن آخر
امیدوارم این مطلب در بهینه سازی و سرعت بخشیدن به پایگاه داده و سایت وردپرس به شما کمک کرده باشد.اگرچه بهینه سازی پایگاه داده وردپرس به وسیله phpMyAdmin و اجرای کوئری های SQL آسان و ساده است، اما استفاده از پلاگین ها آسانتر و عملکرد بهتری خواهد داشت. توجه کنید که قبل از هر گونه تغییر در پایگاه داده ، از سایت خود یک نسخه پشتیبان تهیه کنید.
برچسبها: optimizing, wordpress, wordpress database, آموزش وردپرس, بهینه سازی, بهینه سازی وردپرس, پایگاه داده وردپرس, دیتابیس وردپرس, وردپرس
سلام خسته نباشید.
واقعا اطلاعات جامع و خوبی بود مرسی