Back to Article List

قاعدة البيانات هي عنق الزجاجة: الذاكرة والقرص قبل الشبكة

قاعدة البيانات هي عنق الزجاجة في أداء موقعك - قاعدة البيانات هي عنق الزجاجة: الذاكرة والقرص قبل الشبكة

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

لماذا قاعدة البيانات هي العنق

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

وكل استعلام لا يجد نتيجته جاهزة يعني: بحثاً في الفهرس، ثم قراءة من الذاكرة أو من القرص، ثم فرزاً وتجميعاً. ولذلك حين نقول «الخادم بطيء» فالمقصود في الغالب قاعدة البيانات بطيئة.

ولهذا السبب أيضاً لا تعالج زيادة الأنوية شيئاً في الغالب: الاستعلام الواحد ينتظر بيانات، والانتظار لا يتوزع على أنوية.

الذاكرة أولاً: البيانات الساخنة

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

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

  • بياناتك النشطة ليست حجم قاعدتك كله — بل ما يُقرأ فعلاً: منتجات هذا الموسم، وطلبات هذا الشهر، وجلسات المستخدمين النشطين.
  • المؤشر الذي تراقبه هو نسبة الطلبات التي وُجدت في الذاكرة. انخفاضها المفاجئ يعني أنك تجاوزت العتبة.
  • الحل الأول دائماً رفع الذاكرة المتاحة للقاعدة قبل أي تحسين آخر — فهو أرخص وأسرع أثراً من إعادة كتابة الشيفرة.

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

القرص ثانياً: ما لا يتسع في الذاكرة

مهما كبرت الذاكرة، سيبقى جزء من العمل على القرص: الكتابة، والسجلات، والتقارير التي تمسح بيانات قديمة. وهنا يظهر نوع القرص:

نوع التخزينسلوكه مع قاعدة البياناتمناسب لـ
قرص ميكانيكيغير مناسب لقاعدة نشطة إطلاقاًأرشيف ونسخ احتياطي فقط
SSD عبر واجهة SATAمقبول لموقع تعريفي أو مدونةأحمال خفيفة
NVMe للمؤسساتالفارق الحاسم في الكتابة العشوائيةمتاجر وأنظمة إدارة

الرقم الذي يهم هنا ليس سرعة النقل المتسلسل — بل عمليات الإدخال والإخراج العشوائية، لأن قاعدة البيانات تقرأ وتكتب قطعاً صغيرة متفرقة لا ملفات كبيرة متصلة. لهذا تجد قرصاً «سريعاً» في نسخ الملفات وبطيئاً تحت قاعدة بيانات. راجع الفرق بين NVMe و SSD.

الاستعلامات والفهارس

بعد الذاكرة والقرص يأتي دور ما تفعله بهما. أكثر ثلاث مشكلات شيوعاً:

  1. فهرس مفقود. استعلام يمسح جدولاً كاملاً بدل أن يقفز مباشرة. يبدو سريعاً على ألف صف وينهار على مئة ألف — ولذلك يظهر بعد أشهر من الإطلاق لا في يومه.
  2. استعلام داخل حلقة. جلب قائمة ثم استعلام لكل عنصر فيها. عشرون منتجاً تعني إحدى وعشرين رحلة إلى القاعدة بدل رحلتين. أشهر مشكلة أداء في تطبيقات الويب.
  3. جلب كل شيء. طلب كل الأعمدة وكل الصفوف ثم التصفية في الشيفرة — عمل يُنجَز في القاعدة أسرع بكثير.

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

الاتصالات المتزامنة: الحد الخفي

لكل قاعدة بيانات حد أقصى للاتصالات المتزامنة، وكل اتصال يستهلك ذاكرة. حين يُستنفد الحد لا يتباطأ النظام بل يرفض: رسالة خطأ في الاتصال، وصفحة بيضاء عند الزائر.

وهذا سبب متكرر لانهيار المواقع في الذروة تحديداً. علاجه ليس دائماً رفع الحد — لأن الاتصالات تستهلك ذاكرة أصلاً — بل:

  • تجميع الاتصالات بحيث يُعاد استخدامها بدل فتح اتصال لكل طلب.
  • تقصير زمن الاستعلامات فتُحرَّر الاتصالات أسرع.
  • كاش الكائنات لتقليل عدد الاستعلامات أصلاً — وهو أعلى عائد في المتاجر.

الكتابة تختلف عن القراءة

معظم النصائح تعالج القراءة، لكن الأنظمة الحقيقية تكتب أيضاً: طلبات، وحركات مخزون، وسجلات، وجلسات. والكتابة أثقل لأنها يجب أن تُثبَّت على القرص لضمان عدم فقدها.

النظامنسبة الكتابةالمورد الحاسم
موقع تعريفي أو مدونةمنخفضة جداًالذاكرة والتخزين المؤقت
موقع إخباريمنخفضةالتخزين المؤقت
متجر إلكترونيمتوسطةالقرص NVMe
نظام إدارة مواردمرتفعةالقرص والذاكرة معاً
نقاط بيع وفوترةمرتفعة جداًالقرص وضمان الموارد

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

خطة تحسين بترتيب العائد

  1. فعّل كاش الكائنات — يقلل عدد الاستعلامات مباشرة. أعلى عائد وأقل تكلفة.
  2. ارفع الذاكرة المخصصة للقاعدة حتى تتسع بياناتك النشطة.
  3. اعثر على أبطأ عشرة استعلامات عبر سجل الاستعلامات البطيئة، وعالجها بفهارس.
  4. انقل إلى قرص NVMe إن كانت نسبة الكتابة مرتفعة.
  5. أخرج التقارير الثقيلة إلى أوقات الهدوء أو إلى نسخة قراءة منفصلة.
  6. افصل القاعدة عن التطبيق على خادمين — آخر خطوة، وتُبرَّر عند الحمل المرتفع فقط.

لاحظ أن أول ثلاث خطوات لا تحتاج شراء موارد جديدة. للتفصيل التقني راجع تحسين الأداء باستخدام PostgreSQL و Redis وتصميم قاعدة بيانات قابلة للتوسع.

أسئلة شائعة

لماذا موقعي بطيء رغم قوة المعالج؟

لأن الاختناق غالباً في قاعدة البيانات لا في المعالج. الاستعلام ينتظر بيانات، والانتظار لا يُسرَّع بأنوية إضافية.

كم ذاكرة تحتاج قاعدة البيانات؟

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

هل NVMe فرق حقيقي لقاعدة البيانات؟

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

ما أسرع تحسين يمكنني تنفيذه اليوم؟

تفعيل كاش الكائنات، ثم مراجعة أبطأ عشرة استعلامات من سجل الاستعلامات البطيئة. الاثنان بلا تكلفة عتاد.

متى أفصل قاعدة البيانات على خادم مستقل؟

عند الحمل المرتفع أو حين تحتاج توفراً عالياً. قبل ذلك، الفصل يضيف تعقيداً وزمن شبكة بين الطرفين بلا مقابل.

هل تكفي الاستضافة المشتركة لقاعدة بيانات نشطة؟

لموقع تعريفي نعم. لمتجر أو نظام إدارة لا — لأن حدود الموارد المشتركة تظهر أولاً في قاعدة البيانات. راجع متى تنتقل إلى VPS.

ما علاقة هذا بموقع الخادم الجغرافي؟

لا علاقة تقريباً. استعلام يستغرق ثانيتين سيستغرق ثانيتين في بغداد وفي فرانكفورت. راجع الموارد أم قرب الخادم.

عالج العنق الحقيقي

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

أعدّه الفريق التقني في مرام هوست. آخر تحديث: 9 أيلول 2026. التوصيات إرشادية وتختلف باختلاف محرك قاعدة البيانات وحجم البيانات ونمط الاستخدام.

Powered by WHMCompleteSolution