استعلامات Data Explorer بطيئة

لقد أنشأت بعض استعلامات مستكشف البيانات.

إذا قمت بتنفيذها في الواجهة الخلفية للمسؤول، فإن واجهة المستخدم الرسومية تعرض لي وقت تنفيذ سريع جدًا للاستعلام نفسه، على سبيل المثال “اكتمل الاستعلام في 7.9 مللي ثانية”.

يُظهر سجل الشبكة في متصفحي أن https://example.com/admin/plugins/explorer/queries/1/run قد تم الوصول إليه وأنه استغرق 1-2 أضعاف الوقت للحصول على النتيجة، على سبيل المثال 150 مللي ثانية.

عندما أقوم بتشغيل استعلام باستخدام curl، فإنه يستغرق وقتًا أطول، حوالي ضعف الوقت مقارنة بتشغيل الاستعلام في لوحة المسؤول.

كيف يمكنني الحصول على استعلامات مستكشف البيانات التي يمكنني استردادها بسرعة دون هذا القدر الكبير من الحمل الزائد؟

إعجاب واحد (1)

بناءً على المعلومات التي قدمتها، أقول إن هذه استعلامات بسيطة (سريعة التنفيذ في نظام إدارة قواعد البيانات العلائقية)، والتي تُرجع العديد من الصفوف (بطيئة في إلغاء التسلسل/التسلسل في الواجهة الخلفية والنقل).

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

  • تقليل عدد الصفوف لكل صفحة، بحيث تكون كل صفحة أسرع.

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

  • الاستعلام عن قاعدة البيانات الأساسية مباشرة.

3 إعجابات

لدينا عمليات بحث سحرية لأسماء أعمدة معينة (user_id، post_id، إلخ) ونطلق عليها أسماء مستعارة مثل post_id1 وما إلى ذلك.

إعجاب واحد (1)

شكراً يا رفاق!

الأمر نفسه ينطبق إذا كان لدي صف واحد فقط كنتيجة للاستعلام. على سبيل المثال، استعلام يُرجع عددًا صحيحًا واحدًا، تم تشغيله في لوحة مستكشف البيانات في الواجهة الخلفية للمسؤول يستغرق 9 مللي ثانية، وتم تشغيله من الخارج مقابل واجهة برمجة تطبيقات مستكشف البيانات عبر curl يستغرق 200 مللي ثانية.

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

يستخدم استعلامي هذه لعمليات الربط (JOINs) ولكن ليس في مجموعة النتائج. يحتوي SELECT على عمود واحد فقط وهو عمود محسوب حديثًا باسم عشوائي.

ماذا يقول NGINX عن وقت الخادم للطلب، هل يمكن أن تكون هذه مشكلة شبكة؟

بافتراض أن هذه هي الأرقام العشرية على بعد 3 خانات من يمين رمز حالة HTTP (على سبيل المثال، ... 200 642 "-" **0.107 0.108** "system" ...، والتي أبرزتها بالنجوم) فهي حوالي 10 أضعاف مدة وقت الاستعلام المبلغ عنها في الواجهة الخلفية وهي بالضبط نصف الوقت تقريبًا الذي يستغرقه curl من العميل الخاص بي.