اذهب إلى المحتوى

إن كان قد مضى على استخدامك لووردبريس فترة من الزمن فمن الوارد أن الوقت قد حان لتقوم بعملية تنظيف شاملة لقاعدة بيانات موقعك التي يمكن أن تكون مليئة ببعض الجداول (tables) غير الضرورية والمتسببة في بطئه وتشنجه.

يعمل تنظيف قواعد بيانات موقعك بوتيرة منتظمة على خفض حجمها ما يعني صغر حجم ملفات النسخة الاحتياطية وبالتالي سرعة إنشائها واسترجاعها على حد سواء.

سنتطرق في موضوع اليوم إلى مجموعة من الطرق التي يمكن اتباعها للحفاظ على قاعدة بيانات نظيفة سواء من خلال استعلامات SQL  بسيطة أو من خلال بعض الملحقات، كما سنعمل على الإشارة إلى بعض النصائح سواء بالنسبة لمواقع ووردبريس المنفردة أو شبكات المواقع.

clean-wp.png

أساسيات تنظيف قواعد البيانات

 قبل أن تنهمك في عملية التنظيف عليك بالتأكد من إنشاء نسخة احتياطية لكل من قاعدة بيانات وملفات موقعك لتكون على أتم استعداد لاسترجاعه بسرعة في حال حدوث مشكل ما غير متوقع.

حذف الملحقات غير المستخدمة

يعتبر حذف الملحقات غير المستخدمة من بين أبسط الطرق وأكثرها نجاعة في التخفيف من الفوضى التي تعرفها قاعدة بيانات موقعك، خصوصا إن كنت من محبي تجربة الملحقات كما هو الحال بالنسبة لي، فقد يحدث في بعض الأحيان أن تغفل عن حذف الملحقات التي لن تستخدمها أو التي لم تنل إعجابك بعد تجربتها.

inactive-plugins.png

إن كنت مثلي تملك العديد من الملحقات الغير المنشطة على صفحة الملحقات الخاصة بك عليك أن تأخذ حذفها بعين الاعتبار

لا أعتقد أني الوحيد الذي يقوم بهذا الأمر. عدا ذلك، قد يحدث في بعض الأحيان الأخرى أن تقوم بتنصيب ملحق ما ناسيا أنك تمتلك ملحقا مشابها يقوم بنفس الدور. بغض النظر عن أي هذه الوضعيات تواجه، يعتبر فحص قائمة الملحقات المنصبة على موقعك بشكل دوري لتحدد تلك التي تحتاجها من تلك التي يمكن التخلي عنها أمرا مفيدا للغاية.

تأخذ الملحقات قسطا مهما من حجم قاعدة بيانات موقعك، لذى فإن حذف تلك غير الضرورية منها يعتبر خطوة أساسية نحو تنظيفها.

كيفية تنفيذ تعليمات SQL على قاعدة بيانات موقعك

حتى تقوم بالعديد من الخيارات التي سنتطرق لها، سيكون عليك أن تلج إلى قاعدة بيانات موقعك. إن لم تكن تذكر اسم المستخدم وكلمة المرور الخاصتين بك يمكنك أن تجدهما محفوظتين في ملف wp-config.php.

يبدو الكود الذي يجب عليك أن تبحث عنه كالتالي:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'your_db');

/** MySQL database username */
define('DB_USER', 'yourusername');

/** MySQL database password */
define('DB_PASSWORD', 'this-is-your-password');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

عوض yourusername الواردة في هذا المثال ستجد كلمة المستخدم الخاصة بقاعدة بيانات موقعك وعوض this-is-your-password ستجد كلمة السر.

بمجرد ولوجك إلى لوحة التحكم phpMyAdmin اضغط على قاعدة البيانات التي تود تنظيفها ثم اضغط على تبويب SQL.

sql-query-phpMyAdmin.png

يمكنك أن تكون مبدعا بعض الشيء وتقوم بإنشاء استعلاماتك الخاصة من خلال الضغط على تبويب Query وملء الخانات المطلوبة

يمكنك على هذه الصفحة أن تدخل الاستعلامات التي تريد في الأسفل ثم تقوم بالضغط على زر Go لتشغيلها.

إن ظهرت لك رسالة مفادها أنه لم يتم التأثير على أي جدول فهنيئا لك، فجداول قاعدة بيانات موقعك كانت في أحسن حالة من تلك الناحية بالتحديد.

بعد تطرقنا لهذه التحضيرات الأولية لنمر الآن إلى تنفيذ بعض الاستعلامات.

حذف مخلفات الملحقات ومعطيات المنشورات

بعد حذف الملحقات التي لا تستخدمها عليك بالتفكير أيضا في حذف البقايا التي تتركها هذه الملحقات، تتواجد هذه العوالق في نفس مكان تواجد معطيات منشوراتك، أي في جدول wp_postmeta. يسمح لك تنفيذ الاستعلام التالي بالتخلص من بعض الفوضى في قاعدة بياناتك، فقط تذكر وضع القيمة التي تود حذفها مكان your-meta-key.

DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key';

إن كنت تستخدم ووردبريس متعدد المواقع عليك بتنفيذ الاستعلام التالي:

DELETE from wp_#_postmeta WHERE meta_key = 'your-meta-key';

عليك أن تغير في هذا الاستعلام # برقم تعريف (ID) موقعك الذي تود تنظيفه، وكما في الاستعلام السابق، يجب أن تعمل على تعويض your-meta-key بالقيمة التي تود حذفها.

حذف كل تعليقات السبام المزعجة

عرف ووردبريس تواجد تعليقات السبام المزعجة منذ بداياته ولا يبدوا أن لها زوالا في الأمد المنظور، إن كنت تجد كما كبيرا من هذه التعليقات في موقعك، عليك باستخدام هذا الاستعلام الذي سيعمل على حذفها كاملة.

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';

لا تنس تغيير # بالرقم التعريفي (ID) للموقع الذي تود تنظيفه.

الوسوم المنسية وغير المستخدمة

إن كنت تمتلك العديد من الوسوم غير المستخدمة لأنك غيرت رأيك حولها أو كنت تقوم بالتعديل على الوسوم بضع مرات كل منشور، عليك بتنفيذ الاستعلام التالي الذي سيعمل على حذف كل الوسوم غير المرتبطة بأي منشور.

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;

قم بتغيير # برقم الموقع الذي تود العمل عليه.

قل وداعا للتنبيهات الداخلة (Pingbacks)

إن كنت قد قمت بتعطيل خاصية السماح بالتنبيهات الداخلة (pingbacks) فمن الجيد أن تفكر في حذفها كلها من قاعدة بيانات موقعك، عليك بتنفيذ الاستعلام التالي:

DELETE FROM wp_comments WHERE comment_type = 'pingback';

إن كنت تستخدم شبكة مواقع ووردبريس وتريد حذف التنبيهات الداخلة في موقع آخر غير الموقع الرئيسي استخدم الاستعلام التالي:

DELETE FROM wp_#_comments WHERE comment_type = 'pingback';

لا تنس تغيير # بالرقم التعريفي (ID) للموقع الذي تود تنظيفه.

تخلص من روابط التتبع (Trackbacks)

كما قمنا في الفقرة السابقة بحذف التنبيهات الداخلة لنتطرق الآن لكيفية حذف روابط التتبع، عليك بتنفيذ الاستعلام التالي بعد التأكد من تعطيل كل من التنبيهات الداخلة وروابط التتبع.

DELETE FROM wp_comments WHERE comment_type = 'trackback';

أما بالنسبة لشبكة مواقع ووردبريس، عليك بتنفيذ الاستعلام التالي، لا تنس تغيير # بالرقم التعريفي (ID) للموقع الذي تود تنظيفه:

DELETE FROM wp_#_comments WHERE comment_type = 'trackback';

قل وداعا لمراجعات المنشورات

يمكن لمراجعات المنشورات أن تتراكم بسرعة كبيرة خصوصا في المواقع القديمة والتي تتوفر على الكثير من الصفحات والمنشورات، يمكنك استخدام الاستعلام التالي للعمل على حذفها كلها.

يرجع الفضل في هذا الكود الذي يسمح بحذف كل المراجعات دون ضياع غير مقصود لأي بيانات للمبرمج Joseph Michael Ambrosio حيث أورده في مقاله: تنظيف مراجعات ووردبريس باستخدام حذف الجداول المتعددة على MySQL

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';

لا تنس تغيير # بالرقم التعريفي (ID) للموقع الذي تود تنظيفه.

التخلص من كل الشيفرات المختصرة (Shortcodes)

إن سبق لك تنصيب العديد من الملحقات بغرض تجريبها دون القيام بحذفها فمن الوارد أن يتسبب ذلك في تواجد العديد من الشيفرات المختصرة التي لم يعد لها أي دور يذكر، نفس الأمر يحدث عند التوقف عن استخدام أحد القوالب التي تحتوي على بعض هذه الشيفرات. عليك بتنفيذ الاستعلام التالي بغرض حذفها كلها:

UPDATE wp_post SET post_content = replace(post_content, '[your-shortcode]', '' ) ;

أما بالنسبة لشبكة مواقع ووردبريس، عليك بتنفيذ الاستعلام التالي، لا تنس تغيير # بالرقم التعريفي (ID) للموقع الذي تود حذف الشيفرات المختصرة منه:

UPDATE wp_#_post SET post_content = replace(post_content, '[your-shortcode]', '' );

احذف كل مواضيعك القديمة

قد توجد لديك العديد من المواضيع التي تحبذ أن يتم حذفها من موقعك خصوصا إن كنت تملكه منذ عدة سنوات. يمكنك القيام بذلك بكل بساطة باستخدام هذا الاستعلام.

عليك بتغيير #-of-days بعدد الأيام التي تريد أن تبدأ عملية الحذف انطلاقا منها، إن أردت على سبيل المثال أن يتم حذف كل المنشورات الأقدم من 5 سنوات عليك بإدخال العدد: 1825.

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

لا تنس تغيير #-of-days بعدد الأيام كما في الكود السابق و# بالرقم التعريفي (ID) للموقع الذي تود تنظيفه.

حذف كل بقايا التعليقات

قد يحدث أن يمتلئ جدول wp_commentsmeta بالتعليقات غير المخزنة في جدول wp_comments. من المحتمل ألا يناسب هذا الاستعلام كل المستخدمين إلا أنه قد يساعد كثيرا في تنظيف قاعدة البيانات خصوصا إن قمت بحذف أحد الملحقات التي تستخدم جدول wp_commentsmeta.

SELECT * FROM wp_commentmeta WHERE comment_id

NOT IN (

SELECT comment_id

FROM wp_comments

);

إن أردت أن تقوم بنفس العملية بالنسبة لأحد مواقع شبكتك عليك بتنفيذ الاستعلام التالي:

SELECT * FROM wp_#_commentmeta WHERE comment_id

NOT IN (

SELECT comment_id

FROM wp_#_comments

);

لا تنس تغيير # بالرقم التعريفي (ID) للموقع الذي تود تنظيفه.

تحسين جداول قاعدة البيانات

يمكنك تحسين جداولك في بضع ضغطات زر دون الحاجة إلى استخدام ملحق ما.

بعد الولوج إلى phpMyAdmin، اضغط على قاعدة البيانات الخاصة بك ثم اذهب إلى أسفل الصفحة التي تم تحميلها في اليمين. اضغط على Check All checkbox في الأسفل ثم حدد Optimize table من القائمة المنسدلة. إن كنت تملك عدة صفحات جداول سيكون عليك أن تكرر هذه العملية لها كلها.

optimize-table.png

يكفي أن تحدد الجداول كبيرة الحجم التي تجدها في خانة Size، لا داع لتحديد كل الجداول

ستبدأ عملية التحسين بشكل أوتوماتيكي دون الحاجة إلى ضغط زر Go، لا تقلق إن استغرق الأمر بعض الوقت خصوصا إن كان موقعك كبيرا فهذا أمر عادي. عند الانتهاء، ستظهر رسالة تفيد بنجاح العملية.

optimize-table-successful.png

على الصفحة التي يتم تحميلها، من المحتمل أن تظهر رسالة تفيد بنجاح العملية مشيرة إلى أن الجداول لا تقبل عملية التحسين وأنه قد تم إعادة إنشائها، لا عليك فلا ضرر في ذلك.

بعد أن تطرقنا لبعض النصائح حول كيفية القيام بتنظيف قاعدة البيانات بشكل يدوي، لنلق الآن نظرة على بعض الملحقات التي من شأنها أن تجعل هذه العملية أكثر بساطة.

ملحقات تحسين قاعدة البيانات

تتميز هذه الملحقات بتحديثها بشكل مستمر فضلا عن توافقها مع مواقع ووردبريس المنفردة (single installations of WordPress). بعد تجريبها على استضافة ووردبريس متعددة المواقع (Multisite)، لاحظت أن أدائها لم يضعف بل قامت بالعمل على أتم وجه.

WP-Optimize

WP-Optimize.PNG

يعتبر WP-Optimize من بين أفضل ملحقات تحسين قواعد البيانات المتواجدة على الساحة منذ فترة من الزمن، كما أنه يتوفر على العديد من الإعدادات والخيارات لحذف الجداول غير الضرورية فضلا عن إمكانية برمجة عمليات التحسين بشكل دوري للمساعدة على الحفاظ على موقعك في أحسن حالة. يتميز الملحق أيضا بسهولة التنصيب والإعداد.

إن كنت مهتما بهذا الملحق عليك بزيارة الرابط التالي: WP-Optimize

Revision Control

Revision Control.PNG

يمكنك من خلال هذا الملحق أن تحد من عدد المراجعات التي يتم تخزينها في قاعدة البيانات عوض حذفها بشكل كلي كما هو الشأن بالنسبة لاستخدام استعلام SQL الذي أسلفنا الذكر، يتميز Revision Control أيضا بسهولة التنصيب والاستخدام.

إن كنت مهتما بهذا الملحق عليك بزيارة الرابط التالي: Revision Control

خاتمة

يمكنك الآن أن تقوم بتنظيف قاعدة بياناتك سواء بالنسبة لموقع ووردبريس الخاص بك أو شبكة مواقع ووردبريس.

ما هي أفضل الاستراتيجيات التي تستخدمها للحفاظ على قاعدة بيانات نظيفة ومنظمة؟ هل أغفلت بعض النقاط؟ شاركنا رأيك في التعليقات أسفله.
 

ترجمة بتصرف للمقال: 10 Tips for Keeping a Squeaky Clean WordPress (and Multisite!) Database لكاتبه: Jenni McKinnon

تم التعديل في بواسطة يوغرطة بن علي


تفاعل الأعضاء

أفضل التعليقات

أشكرك أخ midodexalfa على المعلومات الرائع ولكن لفت إنتاهي أن البحث داخل SQL معقد للغاية ناهيك عن حذف بيانات من القاعده نفسها أتمنى توضح نقطة "بمجرد ولوجك إلى لوحة التحكم phpMyAdmin اضغط على قاعدة البيانات التي تود تنظيفها ثم اضغط على تبويب SQL" ولك جزيل الشكر.



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...