تسريع استعلامات ownCloud 10 من خلال إدارة الفهارس بأمان
تعرف على متى تحتاج فهارس قاعدة بيانات ownCloud 10 إلى الاهتمام، وكيفية تطبيق تحديثات المخطط المدعومة بأمان، ومتى يكون ضبط الاستعلام أو تغيير قاعدة البيانات هو الحل الأفضل.
بالنسبة لـ ownCloud 10، ابدأ بتطبيق تغييرات المخطط التي يوفرها النظام الأساسي والتطبيقات المثبتة، ثم تحقق من استعلامات قاعدة البيانات البطيئة. لا تُضف الفهارس بشكل عشوائي، ولا تفترض أن أمر Nextcloud db:add-missing-indicesهو أمر إصلاح مدعوم في ownCloud 10، إذ لا يوثقه مرجع ownCloud Server 10.15 OCC الحالي. قد تُسرّع الفهارس عمليات قراءة البيانات المطابقة، ولكن كل فهرس مُضاف يستهلك مساحة تخزين ويُضيف عبئًا على عمليات الإدراج والتحديث والحذف.
يناسب هذا الأسلوب مسؤول النظام الذي يعاني من بطء في صفحة ownCloud أو عرض الملفات أو تشغيل التطبيق، ولديه القدرة على الوصول إلى الخادم وقاعدة البيانات. أما إذا كان النظام بأكمله بطيئًا، أو كان يعمل على SQLite مع وجود عدة مستخدمين نشطين، فيجب التحقق من قاعدة البيانات وإعدادات النشر بشكل عام قبل اعتبار الفهارس سببًا للبطء.
يُعدّ فهرس قاعدة البيانات بنيةً مساعدةً تُسهّل على قاعدة البيانات تحديد مواقع الصفوف دون الحاجة إلى فحص الجدول بأكمله. تُعرّف منصة ownCloud وتطبيقاتها الجداول والأعمدة والفهارس كجزء من مخططها. قد تتضمن تحديثات النظام الأساسي والتطبيقات عمليات ترحيل للمخطط تُنشئ هذه الفهارس أو تُعدّلها. لذا، يُعدّ الحفاظ على تحديث مخطط التطبيق الخطوة الأولى الأكثر أمانًا.
استخدم الفروقات التالية قبل تغيير أي شيء:
لا يُعدّ الفهرس مُحسِّنًا عامًا للسرعة. قد يُحسِّن استخدام المزيد من الفهارس عمليات البحث المُحدَّدة، ولكنه يزيد من حجم قاعدة البيانات وزمن استجابة الكتابة. وتعتمد النتيجة على شكل الاستعلام، وحجم الجدول، وتوزيع البيانات، ومُحرك قاعدة البيانات، وحالة ذاكرة التخزين المؤقت.
sudo -u www-data ./occ status. دوّن إصدار ownCloud، وإصدارات التطبيقات المثبتة، ونوع قاعدة البيانات، وبادئة الجدول من الملف config/config.php. استبدل www-dataبحساب خادم الويب على توزيعتك.mysqldump --single-transactionمثالاً لقواعد البيانات المتوافقة مع MySQL؛ عدّل قيم المضيف والمستخدم وقاعدة البيانات لتناسب إعداداتك. لا تُدخل كلمة مرور قاعدة البيانات مباشرةً في سجل الأوامر أو قائمة العمليات.إذا كان هناك تحديث معلق لنظام ownCloud الأساسي أو التطبيق، فاستخدم عملية الترقية الموثقة لطريقة التثبيت لديك. في تثبيت Linux التقليدي، يتم تشغيل أمر OCC كمستخدم HTTP من الدليل الجذر لنظام ownCloud. عند اتباع تعليمات الترقية اليدوية، يكون الأمر كالتالي:
sudo -u www-data ./occ upgrade
لا تقم بتشغيله على تثبيت لم يتم تحديث ملفاته بالكامل. قم أولاً بتجهيز ملفات الإصدار المتوافقة واتبع خطوات الترقية الرسمية لهذا الإصدار. بالنسبة لعمليات نشر Docker، استخدم استدعاء OCC الموثق للحاوية بدلاً من مسار المضيف الذي يشير إلى بيئة PHP مختلفة.
اقرأ مخرجات الأمر وسجلاته كاملةً. من المفترض أن ينتهي الأمر بنجاح دون الإبلاغ عن فشل في عملية الترحيل؛ لكن هذا لا يضمن إصلاح جميع الاستعلامات البطيئة. إذا أبلغ التحديث عن خطأ في الترحيل، فتوقف وتحقق من هذا الخطأ بدلاً من إعادة تشغيل الأمر مرارًا وتكرارًا أو تعديل جداول المخطط يدويًا. راجع وثائق ترقية ownCloud الخاصة بالإصدار، واستشر مسؤول التطبيق عند الحاجة إلى ترحيل التطبيق.
يُدرج مرجع ownCloud 10.15 OCC أوامر قاعدة البيانات مثل db:convert-type` <database>` db:convert-mysql-charsetو`<database>` و`<database>` db:restore-default-row-format، ولكنه لا يُدرج الأمر ` <database> db:add-missing-indices`. نظرًا لاختلاف توفر الأوامر باختلاف الإصدار والبرنامج المُثبّت، يُمكنك فحص نسختك باستخدام `<database>` sudo -u www-data ./occ list dbأو ` sudo -u www-data ./occ help db:add-missing-indices<database>`. إذا أبلغت `<database>` عن أمر غير معروف، فلا تنسخ أمرًا من برنامج تعليمي لـ Nextcloud إلى ownCloud. راجع وثائق إصدار ownCloud الخاص بك واستخدم مسار الترقية أو نقل التطبيق المدعوم.
يُعدّ استخدام SQL اليدوي خيارًا لمسؤول قاعدة البيانات لحل مشكلة استعلام مُثبتة، وليس إجراءً روتينيًا لتحسين ownCloud. ابدأ بتسجيل الاستعلام البطيء بدقة، ثم شغّل أداة فحص خطة التنفيذ الخاصة بالمحرك، مثل تلك EXPLAINالمُستخدمة مع MySQL/MariaDB أو PostgreSQL. تأكد مما إذا كانت الخطة تفحص عددًا كبيرًا من الصفوف دون داعٍ، وما إذا كان يتم تجاهل فهرس موجود. يُمكنك ضبط بادئة جدول ownCloud، لذا لا تفترض أبدًا أن أسماء الجداول تبدأ بـ oc_.
قبل إنشاء فهرس، قارن الأعمدة المقترحة مع عوامل التصفية والربط وترتيب الفرز في الاستعلام. يُعد ترتيب أعمدة الفهرس المركب مهمًا؛ إذ قد يؤدي تكرار فهرس موجود إلى زيادة التكلفة دون تحسين الأداء. اطلب من مسؤول قاعدة البيانات مراعاة سلوك إصدار قاعدة البيانات، ودعم إنشاء الفهرس عبر الإنترنت أو بالتزامن، ومساحة القرص المتاحة، وتأثير الأقفال، وإجراءات التراجع. تختلف هذه التفاصيل باختلاف المحرك والإصدار، لذا لا توجد عبارة SQL واحدة آمنة لجميع عمليات تثبيت ownCloud 10.
لا تُعدّل جداول ownCloud أو تحذف الفهارس لمجرد أن الاسم يبدو زائداً. قد تتعارض هذه التغييرات مع ترحيل لاحق للنظام الأساسي أو التطبيق، وقد تُعطّل ميزة تستخدم استعلاماً مختلفاً عن الذي فحصته. احتفظ بسجل مكتوب لأي تغيير يدوي في المخطط، وتأكد من إمكانية استعادته بعد الاستعادة أو الترحيل. يُفضّل استخدام تصحيح ownCloud المدعوم أو إصدار التطبيق عندما يكون الفهرس المفقود عيباً في مخطط المنتج.
إذا كانت الخطة تستخدم بالفعل مؤشرًا مناسبًا، فمن غير المرجح أن تؤدي إضافة مؤشر آخر إلى حل مشكلة التأخير الناجمة عن سبب آخر. قارن هذه الخيارات مع الاختناق الملحوظ:
يُعد تغيير محركات قواعد البيانات مشروع ترحيل، وليس مجرد تعديل سريع للفهرس. يوفر ownCloud occ db:convert-typeعمليات تحويل مدعومة؛ راجع متطلباتها الأساسية، وقم بعمل نسخة احتياطية أولاً، واختبر النسخة المحولة قبل توجيه المستخدمين إليها.
كرر نفس إجراء المستخدم في ظروف مماثلة، وقارن مدة الاستعلام، وخطة التنفيذ، والصفوف التي تم فحصها، وعمليات الإدخال/الإخراج لقاعدة البيانات، وحمل الخادم. تأكد من أن صفحة أو تطبيق ownCloud ذي الصلة يعمل بشكل طبيعي، وأن السجلات لا تُظهر أي أخطاء في قاعدة البيانات أو في عملية الترحيل. لا يُعدّ الحصول على نتيجة أسرع في طلب واحد دليلاً على تحسين شامل؛ قارن عدة طلبات نموذجية، وراعِ تأثير ذاكرة التخزين المؤقت النشطة.
إذا استمر بطء نفس الاستعلام حتى مع استخدام فهرس مناسب، فابحث في عمليات القفل، ومساحة التخزين، وزمن استجابة الشبكة، وعمال PHP، وحدود موارد قاعدة البيانات. إذا كانت خطة الاستعلام أو بنية الجدول غير واضحة، فتوقف قبل تنفيذ أوامر DDL اليدوية واطلب من مسؤول قاعدة البيانات أو أحد أعضاء فريق دعم ownCloud مراجعتها. والنتيجة المرجوة هي مخطط قاعدة بيانات متوافق مع إصدار ownCloud المُثبّت والاستعلامات المقاسة، دون أي تغييرات غير مُتتبّعة في الفهرس.
تعرف على متى تحتاج فهارس قاعدة بيانات ownCloud 10 إلى الاهتمام، وكيفية تطبيق تحديثات المخطط المدعومة بأمان، ومتى يكون ضبط الاستعلام أو تغيير قاعدة البيانات هو الحل الأفضل.
قم بتوصيل مشاركة شبكة Windows أو Samba بـ ownCloud من خلال وحدة تخزين خارجية، وتحقق من بيانات الاعتماد، وقم باستكشاف أخطاء المجلدات التي لا يمكن الوصول إليها وإصلاحها بأمان.
قم بإزالة كل إصدار ملف مخزن من ownCloud Server Classic لحساب واحد أو لجميع المستخدمين، وقم بالتمييز بين عملية التطهير الكاملة وانتهاء الصلاحية المستندة إلى الاحتفاظ.
تتبع رفض اتصال ownCloud عبر الهاتف المحمول عن طريق التحقق من عنوان URL للخادم وشبكة الهاتف ونقطة نهاية HTTPS وسجلات الخادم بالترتيب الصحيح.
استبدل عمليات تشغيل الوظائف عند الطلب بمؤقت systemd الذي يقوم بتشغيل أمر occ system:cron المدعوم من ownCloud كل 15 دقيقة.
تتبع طلب WebDAV من خلال Apache أو Nginx أو وكيل عكسي، ثم تأكد من أن مزامنة ownCloud تعمل مع اختبار PROPFIND مصادق عليه.
قم بإصلاح تحذير عنوان الصادر المفقود في Nextcloud عن طريق تعيين عنوان URL الأساسي الخاص به والتحقق من DNS و HTTPS وتوجيه الوكيل العكسي من الخادم نفسه.
قم بتكوين APCu و Redis عبر مقبس Unix محلي لتخزين Nextcloud المؤقت وقفل الملفات، مع خطوات للإصدارات الحالية والأقدم من Nextcloud.
تحقق من وضع cron الخاص بـ Nextcloud، وقم بإصلاح خدمة systemd والمؤقت الخاص به، وتأكد من تشغيل المهام الخلفية بعد بدء التشغيل وكل خمس دقائق.
قم بتمكين قفل الملفات الموثوق به في Nextcloud، واختر الواجهة الخلفية المناسبة Redis أو Valkey، وتحقق من إزالة التحذير دون المخاطرة بتغييرات الملفات المتزامنة.