Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

كيف تسرع من الووردبريس: التخزين المؤقت و تحسين قاعدة البيانات

by
Length:MediumLanguages:
This post is part of a series called Speeding Up WordPress.
Speed Up WordPress: Using CDNs, Compression, and Minification

Arabic (العربية/عربي) translation by Abu Bakr Soliman (you can also view the original English article)

واحدة من أهم قضايا النقاش في مجتمعات الووردبريس, هي كيفية التسريع من أداء الووردبريس و تحسين أداء صفحاته. و لا أظن أن هنالك مدونة تختص بالووردبريس دون مقال حول "عدد من النصائح حول كيفية التسريع من الووردبريس" و لا تسئ الظن بي, فهذا بالطبع أمر جيد. و لكننا في أشد الإحتياج لمقالات أفضل حول هذا الموضوع, بعيداً عن الإضافات  Plugins المملة المنتشرة.

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

و دعونا نبدأ بأشهر و ربما أسهل جانب: التخزين المؤقت Caching.

التخزين المؤقت في الووردبريس

أعتقد أنه من الطبيعي القول أنه الموضوع الأكثر شيوعاً إذا ما تحدثنا عن تسريع الووردبريس. و يجب الإعتراف أن هذا بسبب وجود الإضافات الشائعة و سهلة الإستخدام الخاصة بعملية التخزين المؤقت في الووردبريس caching plugins, و لكنه أيضاً في نفس الوقت أحد التقنيات الأساسية التي تساهم في التخفيف من الأحمال على قاعدة البيانات, و التسريع من أداء الووردبريس.

سنعود لاحقاً للحديث حول إضافات التخزين المؤقت caching plugins, و لكننا سنستعرض حالياً النوعين الأساسين من التخزين المؤقت: التخزين المؤقت من جانب الخادم server-side caching, و التخزين المؤقت من جانب العميل/المستخدم client-side caching.

التخزين المؤقت من جانب العميل Client-Side Caching

التخزين المؤقت من جانب العميل هو عبارة عن نوع من التخزين تتولى تنفيذه المتصفحات لدى زوار موقعك. و هذا يعني أنه عندما يفد الزوار إلى موقعك, فإن متصفحاتهم browsers ستتولى تخزين البيانات لأجزاء معينة من صفحات موقعك. و حيث أن المتصفحات تتولى التخزين المؤقت لبعض البيانات تلقائياً (كما في تخزين ملفات الجافاسكربت و الـ CSS), فأنه يمكننا تحسين الأمر بمساعدة ملفات htaccess. 

و نقصد بتحسين الأمر عبر ملف htaccess. , هو أن نقوم بإضافات تواريخ إنتهاء "Expires" في بيانات ترويسة الطلب / الهيدر header. ربما تكون قد سمعت من قبل عن مصطلح "مديونية تخزين المتصفحات المؤقت leveraging browser caching", حيث أنه من المصطلحات الشائعة الإستخدام في دروس "تحسين المواقع", و يعتبر معيار مهم في خدمة سرعة الصفحات من جوجل Google PageSpeed service.

لحسن الحظ, نحن لا نحتاج إلى التعامل مع هذه الترويسات Headers بأنفسنا, حيث تتواجد أجزاء من الكود منتشرة على الإنترنت يمكننا إستخدامها مباشرة. و أنا أفضل ذلك الكود المستخدم ضمن HTML5 Boilerplate, حيث أن الترويسات Headers مصنفة حسب أنواع الملفات:

ضع فقط هذه الأسطر من الكود ضمن ملف htaccess. و لا تقلق حيال الأمر.

التخزين المؤقت من جانب الخادم Server-Side Caching

حين نتطرق للحديث حول التخزين المؤقت من جانب الخادم, فإننا نتحدث عن أربع أنواع أساسية من التخزين المؤقت: التخزين المؤقت للصفحة  page caching, التخزين المؤقت لقاعدة البيانات database caching, التخزين المؤقت للكائن object caching, و التخزين المؤقت لأكواد التشغيل opcode caching. Sourav Kundu يشرح الأمر عبر مقالته في مدونة WP Explorer, و لكن دعونا نلخص الأمر:

  1. التخزين المؤقت للصفحة: خلاصة الأمر, أن الووردبريس يعرض الصفحات عبر الإستعلام من قاعدة البيانات و تحميل النتائج. عبر التخزين المؤقت للصفحة, فإنه يتم تخزين كل صفحة من موقعك على هيئة ملفات HTML في جهة الخادم على وسيط تخزين (هارديسك أو رام RAM), و يتم تقديم فيما بعد ملفات الـ HTML المتاحة لكل صفحة, في كل مرة يزور فيها أحدهم موقعك.
  2. التخزين المؤقت لقاعدة البيانات: بما أن قواعد البيانات هي "العقل" لموقع الووردبريس حيث يتم تخزين كل البيانات, فإنه من غير الجيد و غير الفعال أن يقوم الووردبريس بتنفيذ نفس الإستعلامات التي لا تتغير مرات و مرات, كلما زار أحدهم الصفحة. لذا فإن التخزين المؤقت لقاعدة البيانات يحفظ و من ثم يقدم نتائج هذه الاستعلامات, و يقوم فقط بتحديث النتائج من قاعدة البيانات في حالة حدوث تغيير على هذه الإستعلامات.
  3. التخزين المؤقت للكائن: و هو يعتبر API داخلي للوردبريس, و الذي يسمح للإضافات بأن تحفظ البيانات المتعلقة بالإستعلامات الضخمة في الذاكرة. و ربما يعتبر هذا الأمر بعيد الصلة عما نتحدث عنه في سلسلتنا هذه — و لكن لربما تعرضنا للأمر في درس منفصل مستقبلاً.
  4. التخزين المؤقت لأكواد التشغيل: كما أنك تضع الطحين, الماء, البيض و السكر في كل مرة تخبز فيها كعكة, فإن ملفات الـ PHP هي عبارة عن أمور تتجمع مع بعضها و تنفذ طلباتك. التخزين المؤقت لأكواد التشغيل هو عبارة عن نوع من التخزين المؤقت و الذي يحفظ الكود المجمع compiled code مما يساهم في تسريع العمليات البرمجية بشكل كبير.

إضافات الووردبريس الخاصة بالتخزين المؤقت

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

  1. WP Super Cache: و هي أشهر إضافة للتخزين المؤقت للوردبريس, بتحميل فاق الستة ملايين و تقييم 4.2 في الوقت الذي أكتب فيه المقال. ببساطة, فالإضافة WP Super Cache يقوم عملها عبر توليد ملفات ثابتة HTML لصفحاتك و تحديثها كل فترة زمنية تقوم أنت بتحديدها (ساعة بشكل إفتراضي). و الأمر له مفعول السحر حين يعمل حتى مع الإستضافات المشتركة shared hosts, و لكنه يصبح ليس بالأمر الكاف للمواقع ذات عدد الزيارات العالي.
  2. W3 Total Cache: و هي ثاني أشهر إضافة بعدد تحميل فاق الأربعة ملايين و تقييم 4.5, حيث أن الإضافة تعتبر مناسبة للمواقع ذات عدد الزيارات العالي, و التي تعمل على خوادم مشتركة VPS أو خطط إستضافة أفضل. و بما أن الإضافة تحوي العديد من الإعدادات و الدعم لخيارات التخزين المؤقت عالية الأداء, فإنها ربما تكون خيارك المثالي إذا كنت تعرف بالضبط ما يجب عمله. إذا لم تفهم المصطلحات الصعبة في الإعدادات, يمكنك أن تستخدم الإضافة كما هي و لا تغير من أي إعدادات, و إلا ستحدث مشاكل في الواجهة.

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

تعتبر قواعد البيانات بمثابة العقل  لموقعك: حيث أنها تخزن البيانات ذات القيمة والتي تظهر في صفحاتك. المواقع المعتمدة على ملفات الـ HTML الثابته, تقوم بتخزين البيانات مباشرة داخل الصفحات. و لكن أنظمة إدارة المحتوى تعتمد على قواعد البيانات كـ (SQL, NoSQL, XML, JSON و غيرهم) لتخزين البيانات. و الأمر في الووردبريس لا يختلف, حيث أنه يستخدم MySQL لتخزين البيانات الثابتة و المتغيرة بالإضافة الى معلومات موقعك, الإعدادات, بيانات الأعضاء و غيره من البيانات.

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

لا بد لك من مراقبة "مراجعات" تدويناتك, سلة المحذوفات, التدوينات, الصفحات, التعليقات, إلخ ., و أي نوع آخر من البيانات القديمة. و بين الحين و الآخر, عليك أن تتحقق من "الحمل الزائد لقواعد البيانات", و الذي غالباً ما يقارن بإلغاء تجزئة القرص الصلب hard disk defragmentation أو بمعنى آخر, تغيير زيت محرك سيارتك.

يمكنك بالتأكيد أن تعمل على صيانة كل ذلك يدوياً: بأن تقوم بحذف سلة المهملات Trash دوماً, أن تقوم بتعطيل خاصية المراجعات Revisions, أن تحذف كل التعليقات المزعجة, و أن تحسن من قاعدة البيانات من خلال لوحة التحكم phpMyAdmin, و لكن لتعلم أنه ليس هنالك تقنية تحسين "محددة" يمكن اتباعها. و بدلاً من كل ذلك, ربما يمكنك أن تستخدم إضافة ووردبريس تريحك من كل هذا العناء.

هنالك بعض الإضافات التي تسمح لك بتحسين قاعدة البيانات عن طريق ضغطة واحدة أو حتى تلقائياً. الإضافة التي أرشحها بقوة, هي WP-Optimize: و التي تقوم بتنظيف و تحسين قاعدة البيانات دون أي إزعاج.

الإضافة WP-Optimize تحوي بعض الخصائص كالتالي:

  • حذف مراجعات التدوينات القديمة.
  • حذف التعليقات القديمة الغير موافق عليها, أو الدعائية المزعجة.
  • حذف التعليقات الموجودة في سلة المحذوفات.
  • حذف بيانات إضافة الـ Akismet من التعليقات.
  • حذف كل بيانات الـ metadata القديمة من التعليقات.
  • كما أنه متوافق للتشغيل من على الأجهزة النقالة, بما يمكنك من الإستخدام و تحسين موقعك في أي وقت و من أي مكان.
  • حذف كل الـ trackbacks و pingbacks.
  • تنظيف مسودات التدوينات drafts.
  • حذف الخيارات المؤقتة أو قصيرة الأجل transient options.
  • تنظيف سلة محذوفات التدوينات.
  • التنظيف التلقائي لكل الخيارات المتكاملة (و أيضاً يمكنه الإبقاء عليها).
  • القدرة على الحفاظ على البيانات لعدة أسابيع عند تنظيفها.
  • خيار لإضافة أو حذف رابط من شريط لوحة التحكم.
  • يمكنك تعطيل/تمكين مواعيد تحسين أسبوعية.
  • تطبيق عدد من أوامر الـ MySQL المستخدمة في تحسين جداول قاعدة البيانات دون الحاجة للدخول الى لوحة phpMyAdmin أو تطبيقها يدوياً.
  • عرض إحصائيات قاعدة البيانات. أظهار حجم المساحة التي يمكن تحسينها, و حجم المساحة التي تم حذفها.
  • تمكين الإضافة فقط لمدير الموقع.

و كن متأكد أيضاً من مراجعة باق إضافات تحسين قواعد البيانات, و لكن لا تكن متهاون في صيانة قاعدة البيانات.

ماذا سنناقش في الجزء الثاني

في الجزء الثاني من هذه السلسلة, سنلق نظرة حول جوانب الضغط و التصغير compression and minification, و كيف نستخدم الـ CDNs لجعل موقعنا الووردبريس أسرع.

و الآن, ماذا يدور بعقلك حول تسريع مواقع الووردبريس ؟ شارك أفكارك في قسم التعليقات بالأسفل. و إذا أعجبك المقال, لا تنس مشاركته.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.