فهم كيفية استخدام WordPress لـ MySQL

نشرت: 2014-09-30

بشكل عام ، يمكن تقسيم WordPress إلى جزأين:

  • المنطق والقوالب التي تولد الشكل والمظهر لموقع WordPress
  • قاعدة بيانات MySQL التي تخزن كل المحتوى وتشغله بالكامل

لكن ما هي MySQL؟

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

أولاً ، لنتحدث عن ماهية MySQL. على وجه التحديد ، يعد MySQL نظامًا لإدارة قواعد البيانات العلائقية ، أو اختصارًا RDBMS. RDBMS عبارة عن حاوية مصممة للتعامل مع لغة الاستعلام الهيكلية (SQL) وتشغيلها. SQL هي التي تشغل قاعدة البيانات - فهي تتحكم في هيكل قاعدة البيانات وشكلها ، كما تسجل عمليات الإدراج والحذف والتعديلات وما إلى ذلك التي يتم إجراؤها على قاعدة البيانات هذه.

كيف تعمل MySQL؟

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

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

تم تعيين الهيكل أو الأعمدة المحددة للجداول في WordPress مسبقًا - لن تتغير مع نمو الموقع ما لم يغيرها مكون إضافي أو تحديث أساسي على وجه التحديد. لا يتم تحديد العمود مسبقًا فقط ، ولكن يتم تحديد نوعه أيضًا قبل وضع السجلات فيه. أنواع مثل الأرقام (INT للأعداد الصحيحة) ومربعات الكلمات (TEXT أو VARCHAR للحقول النصية) وأنواع أخرى (DATETIME للتاريخ والوقت) معدة مسبقًا في قاعدة البيانات. إذا حاول WordPress (أو أحد المتطفلين) إضافة بيانات إلى قاعدة البيانات لا تتطابق مع النمط المحدد مسبقًا ، فلن تقبل قاعدة البيانات البيانات.

توجد ميزة ضخمة أخرى لقواعد بيانات SQL في اختصار RDBMS: الميزة العلائقية.

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

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

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

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

تم إنشاء بنية الجدول وقاعدة البيانات هذه داخل قاعدة بيانات MySQL عند إعداد WordPress في البداية. من هناك ، يعالج WordPress القيم ، أو الصفوف ، في كل جدول لجعل موقعك يعمل.

على سبيل المثال ، عند إنشاء مستخدم جديد ، يتم إدراج صف يحتوي على جميع البيانات المتعلقة بالمستخدم (مثل اسم المستخدم وكلمة المرور ومستوى الإذن) في جدول wp_users. عندما يقوم المستخدم بتسجيل الدخول ، يقوم WordPress بالوصول إلى قاعدة البيانات والتحقق من المعلومات المقدمة في شاشة تسجيل الدخول مقابل قاعدة البيانات. إذا لم تتطابق ، فسيتم رفض تسجيل الدخول.

كيف تستخدم MySQL التخزين المؤقت

WP No Caching

WordPress و MySQL بدون تخزين مؤقت.

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

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

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

ومع ذلك ، فإن استقرار MySQL يأتي بتكلفة: السرعة. يجب أن يُنظر إلى امتلاك WordPress باستمرار لنفس المفاتيح في قاعدة البيانات مرارًا وتكرارًا على أنه "مكلف". يتكلف الوصول إلى قاعدة البيانات ، وإجراء عملية على القرص ، وإعادة تلك البيانات ، ثم عرضها.
WP التخزين المؤقت

WordPress و MySQL مع التخزين المؤقت. ملاحظة: تعمل خوادم الويب و MySQL والتخزين المؤقت بشكل متزامن بشكل متزامن على نفس الخادم. يفصلهم هذا الرسم البياني لأغراض التوضيح.

التخزين المؤقت هو حل رائع لهذه المشكلة. يستغرق ذلك HTML الذي تم عرضه النهائي ويحتفظ به لفترة قصيرة من الوقت ، ربما 30 ثانية أو نحو ذلك. إذا طلب شخص ما نفس الصفحة ، فسيقوم محرك التخزين المؤقت بتقديم الصفحة المعروضة بالفعل له ، متخطيًا العملية الكاملة للتفاعل مع قاعدة البيانات. لهذا السبب من الأهمية بمكان إما تثبيت المكونات الإضافية للتخزين المؤقت في WordPress أو استخدام خدمة استضافة مُدارة تتعامل مع التخزين المؤقت لك عند إنشاء مواقع الويب. إذا انتهى المنشور في الصفحة الأولى من Reddit ، على سبيل المثال ، فسيتم طي موقعك تحت ضغط كل حركة المرور الجديدة دون تثبيت التخزين المؤقت.

جداول MySQL الأحد عشر في WordPress

WP3.8-ERD

WordPress 3.8 جداول MySQL الافتراضية. الصورة مجاملة WordPress Codex ، المرخصة بموجب GPL

الآن بعد أن فهمنا كيفية عمل بعض قواعد البيانات والجداول هذه فعليًا ، دعنا نتحدث عن أحد عشر جدولًا محددًا ينشئه WordPress ويستخدمه افتراضيًا:

  • wp_commentmeta - يتم تخزين أي بيانات وصفية مرتبطة بالتعليقات ، مثل المفاتيح والقيم ، في قاعدة البيانات هذه. لا يحتوي على بيانات وصفية مثل المؤلف وتاريخ الإرسال ، ولكنه يحتوي على بيانات متنوعة يستخدمها WordPress أحيانًا. هذه البيانات في بعض الأحيان اختيارية أو غير مستخدمة. يتعلق مباشرة بـ wp_comments.

  • wp_comments - يحتوي هذا الجدول على جميع التعليقات التي تم إجراؤها على منشورات وصفحات WordPress ، بالإضافة إلى جميع البيانات المرتبطة مثل المؤلف وعنوان بريده الإلكتروني وتاريخ الإرسال والمنشور حيث تم ترك التعليق.

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

  • wp_options - يتم تخزين أي خيارات تم تعيينها في لوحة الإعدادات في قاعدة البيانات هذه.

  • wp_postmeta - مثل wp_commentmeta ، يتضمن wp_postmeta بيانات اختيارية حول المنشورات. ما لم تكن هناك حالة استخدام محددة ، فمن غير المحتمل أن يتم استخدام هذه الحالة بكثرة.

  • wp_posts - تحتوي wp_posts على كافة البيانات حول المنشورات والبيانات المرتبطة بها. يستخدم هذا الجدول بكثرة ويحتوي على جميع محتويات الموقع.

  • wp_terms - يخزن هذا الجدول محتوى مثل العلامات والفئات التي تم تصنيف المشاركات بها.

  • wp_term_relationships - هذا الجدول مسؤول عن الحفاظ على العلاقات بين المنشورات والفئات والعلامات المرتبطة بها. تم إعداد علاقة MySQL هنا أيضًا: الجدول متصل بالفعل بكل من المنشورات والمصطلحات عبر جدول wp_term_taxonomy.

  • wp_term_taxonomy - يتعامل هذا مع تتبع نوع التصنيفات المرتبطة بالمشاركات. إنه يرتبط مرة أخرى بـ wp_terms بالإضافة إلى wp_term_relationships ويسجل فقط الارتباطات بالفئات والعلامات وما إلى ذلك.

  • wp_usermeta - جدول تعريف آخر ، wp_usermeta يعالج أي بيانات وصفية اختيارية مرتبطة بـ wp_users.

  • wp_users - يحتوي wp_users على جميع البيانات المتعلقة بمستخدمي WordPress ، بما في ذلك معلومات مثل أسماء المستخدمين وحقوق المسؤول وكلمات المرور المشفرة.

قد يبدو MySQL مخيفًا في البداية ، ولكن مع WordPress ، تم تصميم الجداول بطريقة لا تجعلها منطقية فحسب ، بل تعزز أيضًا السرعة والكفاءة. في المرة القادمة التي تعمل فيها على موقع WordPress ، فكر في بنية قاعدة بيانات MySQL التي تعمل على تشغيل الموقع. يمكن أن يضمن الفهم الشامل لقاعدة بيانات الموقع أن يكون موقعك آمنًا وصلبًا وفعالًا للغاية.