STATUS IS UPويكي تحسين المواقع
26تحصين
الأداء والتسليم / تحصين

أداء قاعدة البيانات لمواقع المحتوى والتجارة

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

أداء قاعدة البيانات لمواقع المحتوى والتجارة — دليل بصري
اقرأ
8 دقائق
المصادر
8
أعد التحقق
2027-03-27
مُراجع
مراجع موثوقية قواعد البيانات مع سياق التطبيق والأمان والإصدار
الإجابة المختصرة

ابدأ بالقرار.

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

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

دليل بصري

انظر إلى العمل كنظام.

استخدم هذه الخريطة لربط قرارات المقال قبل تنفيذ التكتيكات الفردية.

SIUتحصين
01اعثر على الطلب المكلف قبل تغيير قاعدة البيانات
02صمّم الفهارس لمسار الوصول الذي تستخدمه فعليًا
03اجعل ترقيم الصفحات ثابتًا وميسور التكلفة
04خزن الأعمال المقروءة دون تقديم استجابة خاطئة
01

اعثر على الطلب المكلف قبل تغيير قاعدة البيانات

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

خطة الاستعلام هي مسار قاعدة البيانات خلال الجداول والفهارس والانضمامات والفرز والتجميعات. في PostgreSQL، يظهر EXPLAIN ذلك المسار. EXPLAIN ANALYZE يشغّل البيان ويُبلغ عن الصفوف والأزمنة الفعلية، لذا استخدم استعلامًا ممثلاً آمنًا. الفجوة الكبيرة بين التقدير والصفوف الفعلية سبب للتحقيق في الإحصاءات أو الشروط، وليست طلب فهرس تلقائيًا.

تتبّع رحلة واحدة

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

احتفظ بالخط الأساس

سجّل الأزمنة قبل التغيير وحركة مرورية قابلة للمقارنة دون تسجيل معرّفات العملاء أو رموزهم أو قيم البطاقات.

02

صمّم الفهارس لمسار الوصول الذي تستخدمه فعليًا

الفهرس بنية مُحافظة يمكن أن تساعد في تحديد الصفوف أو إرجاعها بترتيب؛ إنه ليس مفتاح سرعة شامل. ابدأ بمرشحات الاستعلام المهم ومفاتيح الانضمام وترتيب النتائج ثم أكّد الفهرس المقترح في الخطة. توثّق PostgreSQL أن فهرس B-tree المطابق يمكنه تلبية ORDER BY دون فرز منفصل، خاصة مع LIMIT صغير.

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

طابق مسار الوصول

استخدم مرشحات الاستعلام الفعلية وORDER BY، بما في ذلك فاصل حتمي للفوز (tie-breaker) حيث تحتاج الواجهة إلى ترتيب ثابت.

تجنّب الفهارس التخمينية

راجع ما إذا كان الفهرس مستخدمًا وما يكلفه أثناء الكتابات؛ أعد التحقق مع تغير البيانات والحركة.

03

اجعل ترقيم الصفحات ثابتًا وميسور التكلفة

ترقيم الصفحات برقم الصفحة عادةً يستخدم LIMIT زائد OFFSET. فرض ترتيب قابل للتنبؤ دائمًا. تحذّر PostgreSQL من أنه بدون ORDER BY، قد يُرجع LIMIT مجموعة فرعية غير متوقعة؛ قيم LIMIT أو OFFSET المختلفة قد تعطي مجموعات غير متناسقة لأن المُحسّن قد يختار خططًا مختلفة.

تستحق الإزاحات الكبيرة التدقيق لأن الصفوف المتجاوزة لا تزال تُحسب. لتصفّح كتالوج عميق أو تاريخ طلبات أو أرشيف، فكّر في ترقيم الصفحات بالمسار المفاتيحي (cursor أو keyset): اطلب الصفوف بعد آخر قيمة ترتيب ثابت وفاصل فريد. حدّد كيف تظهر السجلات الجديدة أو المحذوفة قبل تغيير الواجهة.

حدد حجم صفحة صارم

أعد أصغر صفحة مفيدة بدلًا من نتيجة غير محدودة.

فصّل الأعداد الإجمالية

قرّر ما إذا كانت الواجهة حقًا بحاجة إلى إجمالي محدد في كل طلب.

04

خزن الأعمال المقروءة دون تقديم استجابة خاطئة

التخزين المخبأ يُعيد استخدام نتيجة سابقة بدلًا من إعادة بناءها من قاعدة البيانات. ابدأ على طبقة HTTP للصفحات العامة القابلة للتكرار والأصول المعرّفة بالإصدار، لأن نجاح التخزين المخبأ يمكن أن يجنب العمل في التطبيق وقاعدة البيانات. توصي web.dev بالتخزين طويل العمر لروابط معرّفة بالإصدار؛ تغيير عنوان URL هو آلية الإبطال العملية.

سياسة التخزين المخبأ قرار صحّة. يمكن لذاكرة مخبأ مشتركة إعادة استخدام استجابة واحدة عبر المستخدمين، لذا لا تشارك مخرجات العُملاء أو السلة أو السعر أو المخرجات الخاصة بالتفويض ما لم تُصَمَّم وتُختبر لذلك النطاق. Cache-Control private يقيّد إعادة الاستخدام إلى ذاكرة متصفح، بينما no-store يوجّه ألا يحتفظ أي مخبأ بها.

صنّف الاستجابات

فصّل إخراج الكتالوج العام أو المقالات عن المخرجات الخاصة بالجلسة، والموقع، والحسّاسة للأذونات.

اختبر الجِدّة

حدّد من قد يرى قيمة قديمة، ولأي مدة، ومسار الإبطال أو إعادة التحقق.

05

احمِ سعة الاتصالات بدلاً من رفع السقف فحسب

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

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

احسب كل عميل

ضمّن عمليات الويب والعمليات، والمهام المجدولة، والهجرات، وأدوات التقارير، ووظائف النشر.

قيّد محاولات الإعادة

حدد التزامن واستخدم التراجع المتصاعد (backoff) حتى لا يتضاعف الطلب على الاتصالات عند حدوث خطأ.

06

راقب تكلفة الاستعلام مع السياق وضوابط الخصوصية

رتّب عمل قاعدة البيانات بحسب الأثر الكلّي، لا عيّنة بطيئة واحدة. قد يهم استعلام بطيء متوسط يستدعى آلاف المرات أكثر من تقرير نادر. يجمع pg_stat_statements في PostgreSQL بيانات التخطيط والتنفيذ بما في ذلك الاستدعاءات، وإجمالي ووسط زمن التنفيذ، والصفوف، ونشاط البافر. يحتاج إلى تكوين الخادم وإعادة تشغيل لإضافته أو إزالته؛ يمكن أن تضيف متابعة التخطيط حملاً إضافيًا.

اربِط مجموعات الاستعلام بالمسار وإصدار الإصدار ونطاق الوقت. توصي OpenTelemetry بجمع نص الاستعلام افتراضيًا فقط بعد التنظيف الذي يستبدل الحروف الثابتة، واستخدام ملخّص ذي تعددية منخفضة (low-cardinality) للتجميع. يساعد هذا المالكين على رؤية الاتجاهات دون تصدير بيانات العملاء أو إنشاء تسمية لكل قيمة.

راقب الذيل والمجمّع

راجع المدة، الوقت الكلّي، الاستدعاءات، الأخطاء، الاتصالات، والصفوف؛ كل واحد يكشف نمط فشل مختلف.

نقّح التليمتري

استخدم استعلامات مُعلّمة (parameterized) وتحقّق من إزالة الحروف الثابتة قبل مغادرة التتبعات أو السجلات للتطبيق.

07

أصدر تغييرات قاعدة البيانات كعمل موثوقية قابل للانعكاس

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

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

حدّد حدود الحماية مقدمًا

سمّ المسار وإشارات الأداء والصحة والعَتبة التي توقف النشر.

نفّذ كاناري ثم وسّع

تحقّق من الأداء والصحة في شريحة مسيطَر عليها قبل التوسيع؛ درّب مسار العودة خارج الحادث.

نفّذ / تحقق

دليل المهام العملي الخاص بك.

  1. 01

    اختر رحلة واحدة

    اختر صفحة أو معاملة ذات أثر عميل واضح.

    تحقق: ذُكر المسار والنتيجة الصحيحة التي يجب الحفاظ عليها.
  2. 02

    قِس المسار

    سجّل مدة الطلب، عدد الاستعلامات، مدة قاعدة البيانات، الصفوف، وسلوك الاتصالات.

    تحقق: يوجد خط أساس مؤرّخ ولا يحتوي على قيم حساسة.
  3. 03

    رتّب مجموعات الاستعلام

    استخدم الإحصاءات والتتبعات لترتيب العمل بحسب الوقت الكلّي وحجم الاستدعاءات.

    تحقق: يمكن للفريق تحديد الاستعلام المكلف المرتبط بالرحلة.
  4. 04

    افحص خطة آمنة

    استخدم أداة خطة قاعدة البيانات على بيان ممثل.

    تحقق: سُجِّلت الصفوف المتوقعة مقابل الفعلية والعملية المكلفة.
  5. 05

    اختر تغييرًا مبرّرًا واحدًا

    حدّد استعلامًا أو فهرسًا أو ترقيم صفحات أو تخزينًا مخبأً أو ضبطًا للتجمع وُجِهتُه وتقاسيمه.

    تحقق: للتغيير مالك وأدلة اختبار.
  6. 06

    اختبر الصحة

    اختبر الترتيب، الأذونات، الرؤية للأسعار أو المخزون، ونطاق التخزين المخبأ عند الاقتضاء.

    تحقق: تعاد البيانات المتوقعة للحالات العامة والمُسجَّل فيها.
  7. 07

    خصص ميزانية للاتصالات

    ضمّن عملاء الويب والعمال والمجدولات والتقارير والإدارة.

    تحقق: المجموع أقل من حد الخدمة ويظل الوصول للتعافي متاحًا.
  8. 08

    نفّذ كاناري وقرّر

    أطلق لحصة محدودة، ثم وسّع أو عُد إلى النسخة المعروفة بأنها جيدة.

    تحقق: تدعم إشارات الأداء والخطأ والاتصال وصحة البيانات القرار.
مواضيع النقاش

قارن المقايضات، لا تشارك بيانات خاصة.

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

  1. 01

    أي رحلة عميل كشفت أهم تحسّن لقاعدة البيانات لديكم، وماذا قَستَ أولًا؟

  2. 02

    كيف يقرر فريقكم متى يكون رد الكتالوج أو المحتوى آمنًا لذاكرة مخبأ مشتركة؟

  3. 03

    أي قيد تراجع أثر على ترتيب إصدارات المخطط والتطبيق لديكم؟

الموارد الشائعة / الموثوقة

اطّلع على المواد المصدرية.

PostgreSQL Global Development GroupUsing EXPLAIN ↗

يشرح عقد عقدة خطة الاستعلام وماذا يقيس EXPLAIN ANALYZE.

تمت المراجعة 2026-09-27
PostgreSQL Global Development GroupIndexes and ORDER BY ↗

يبين متى يمكن لفهرس B-tree أن يوفّر نتائج مرتّبة.

تمت المراجعة 2026-09-27
PostgreSQL Global Development GroupLIMIT and OFFSET ↗

يوثّق متطلبات الترتيب الثابت وتكلفة الإزاحات الكبيرة.

تمت المراجعة 2026-09-27
PostgreSQL Global Development GroupConnections and Authentication ↗

يعرف حدود الاتصالات والفتحات المحجوزة وتداعيات الموارد.

تمت المراجعة 2026-09-27
PostgreSQL Global Development Grouppg_stat_statements ↗

يفصّل إحصاءات مستوى البيان، ومتطلبات الإعداد، واعتبارات الحمولة الإضافية.

تمت المراجعة 2026-09-27
web.devPrevent unnecessary network requests with the HTTP Cache ↗

إرشادات لـ Cache-Control، وعناوين URL معرّفة بالإصدار، وآليات الإبطال.

تمت المراجعة 2026-09-27
Google CloudReliable releases and rollbacks—CRE life lessons ↗

إرشادات التوافق لتغييرات المخطط وتراجعات التطبيق.

تمت المراجعة 2026-09-27
OpenTelemetrySemantic conventions for database client spans ↗

إرشاد تتبّع قاعدة البيانات لملخّصات ونص استعلام منظّف.

تمت المراجعة 2026-09-27

سياسة المصادر. يستخدم توثيقًا رسميًا قرئ لهذا المقال. النصيحة مشروطة؛ الروابط الداخلية للتنقّل وليست دليلاً.

توضيحات سريعة

أسئلة شائعة.

هل يجب أن أضيف فهرسًا كلما كان استعلام بطيئًا؟

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

هل OFFSET في ترقيم الصفحات مشكلة دائمًا؟

لا. يمكن أن يكون مناسبًا للصفحات الضحلة مع ORDER BY حتمي. راجعه للتصفّح العميق لأن الصفوف المتجاوزة لا تزال تُحسب؛ غالبًا ما يستحق تقييم ترقيم الصفحات بالمفتاح (keyset) للتصفح التسلسلي.

هل يمكنني تخزين صفحة تجارة إلكترونية في CDN؟

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

Status Is UP Editorial Team · محرّرو تفعيل الجهوزية

راجعه مراجع موثوقية قواعد البيانات مع سياق التطبيق والأمان والإصدار. نُشر في 2026-09-27؛ وحُدِّث في 2026-09-30.