يعد ضبط تكوين MySQL مكونًا مهمًا لإدارة قواعد البيانات التي ينفذها متخصصو قواعد البيانات والمسؤولون. ويهدف إلى تكوين قاعدة البيانات لتناسب أجهزتها وعبء العمل. ولكن خارج نطاق إدارة قاعدة البيانات، يتم تجاهل فائدة ضبط تكوين MySQL إلى حد كبير.
نحن نفترض أن ضبط MySQL يمكن أن يؤثر بشكل كبير على أداء تطبيقات الويب. إذا تمكنا من عرض قيمة ضبط MySQL، فإننا نعتقد أن المؤسسات والمنظمات قد تكون حريصة على دمج هذه الممارسة على نطاق أوسع.
يتم تحسين أداء التطبيق من خلال الضبط بشكل أفضل من خلال اتباع نهج شامل يتناول المجالات التالية:
لا ينظر العديد من المطورين ذوي الخبرة إلى ضبط أداء قاعدة البيانات كفرصة لتحسين أداء تطبيقاتهم لأنهم لا يعرفون سوى القليل عن هذا المجال. إنهم يقضون الكثير من الوقت في تحسين قاعدة التعليمات البرمجية، لكنهم يصلون إلى نقطة حيث لم يعد يحقق نتيجة قيمة للوقت والطاقة المستثمرة. يهدف بحثنا حول كيفية تأثير ضبط MySQL بشكل إيجابي على أداء تطبيقات الويب الشهيرة مفتوحة المصدر إلى عرض هذه الحقيقة للمطورين.
يتيح لنا إجراء الاختبار الخاص بنا لـ Laravel Aimeos مقارنة أداء التطبيق قبل التكوين وبعده باستخدام البيانات المصنفة. من خلال إجراء الاختبار باستخدام التكوين الافتراضي أولاً، نحصل على نتائج تحكم قيمة لمقارنة التكوين المضبوط به.
لقد استخدمنا العملية التالية لإعداد واختبار كل تطبيق:
قمنا بنشر اختبارات JMeter وحالة MySQL ومتغيرات MySQL أثناء الاختبارات على Github.
المقاييس التي نظرنا إليها خلال هذا البحث هي:
لقد جمعنا مقاييس استخدام وحدة المعالجة المركزية والاستعلامات في الثانية لمقارنة عبء العمل.
Aimeos Laravel هو إطار عمل تطبيق ويب للتجارة الإلكترونية شائع لإنشاء متاجر عبر الإنترنت وأسواق وتطبيقات B2B. باستخدام Aimeos، يمكن للمستخدمين إنشاء متاجر التجارة الإلكترونية API-first لـ Laravel والتي يمكنها التوسع لدعم أكثر من مليار عنصر. إنه متوفر بأكثر من 30 لغة وتم تثبيته بأكثر من 300000.
لاختبار Aimeos، بدأنا الاختبار بعشرة مستخدمين، ولكن كان علينا تقليل عدد المستخدمين لأننا لم نتمكن من إنهاء الاختبار بالتكوين الافتراضي.
لقد قمنا بتزويد قاعدة البيانات ببيانات بحجم 500 ميجابايت.
كانت مدة الاختبار 10 دقائق.
كنا:
التكوين المستخدم لـ Aimeos Laravel هو كما يلي:
query_cache_type=1 query_cache_size=134217728 query_cache_limit=16777216 query_cache_min_res_unit=4096 thread_cache_size=0 key_buffer_size=8388608 max_allowed_packet=1073741824 sort_buffer_size=2097152 read_rnd_buffer_size=262144 bulk_insert_buffer_size=8388608 myisam_sort_buffer_size=8388608 innodb_buffer_pool_chunk_size=134217728 innodb_buffer_pool_size=805306368 max_heap_table_size=16777216 tmp_table_size=16777216 join_buffer_size=8388608 max_connections=151 table_open_cache=2048 table_definition_cache=1408 innodb_flush_log_at_trx_commit=1 innodb_log_file_size=201326592 innodb_log_buffer_size=16777216 innodb_write_io_threads=4 innodb_read_io_threads=4 innodb_file_per_table=1 innodb_flush_method=O_DIRECT innodb_thread_concurrency=0 innodb_purge_threads=4 optimizer_search_depth=0 thread_handling=pool-of-threads thread_pool_size=2
أظهرت نتائج اختبار Aimeos Laravel تحسينات هائلة في الأداء بين التكوينات الافتراضية والمضبوطة.
أدى تحسين MySQL إلى تحسن كبير في متوسط وقت استجابة الخادم ، والذي تم تقليله من 1.4 ثانية إلى أقل من 800 مللي ثانية.
انخفض زمن الاستجابة (زمن الاستجابة) بنسبة 42% ومتوسط استخدام وحدة المعالجة المركزية بنسبة 86%، في حين زادت الاستعلامات في الثانية بنسبة مذهلة تبلغ 291%، من من 12 إلى 35 استعلامًا في الثانية.
الرسم البياني للنتائج متاح أدناه:
زمن الاستجابة (بالمللي ثانية)، تكوين Aimeos Tuned MySQL مقابل الإعداد الافتراضي
استخدام وحدة المعالجة المركزية (%)، تكوين Aimeos Tuned MySQL مقابل الإعداد الافتراضي
الاستعلامات في الثانية، Aimeos Tuned MySQL Configuration vs Default
قام سيرجي بنشر Aimeos، وقام Gevorg بإعداد التعليمات البرمجية لبذر قاعدة البيانات.
وقت الاستجابة (زمن الاستجابة) ، استخدام وحدة المعالجة المركزية ، و الاستعلامات في الثانية بعد تكوين قاعدة البيانات تكوين الخادم.
انخفض زمن الاستجابة (زمن الاستجابة) بنسبة تتراوح بين 42%، بينما انخفض استخدام وحدة المعالجة المركزية بنسبة 86%. زيادة الاستعلامات في الثانية في Aimeos Laravel 500 ميجابايت بنسبة 291%.
في الختام، يعد ضبط MySQL جانبًا أساسيًا لإدارة قواعد البيانات والذي يمكن أن يكون له تأثير كبير على أداء تطبيقات Laravel. يمكن أن تؤدي تطبيقات الويب ذات الأداء الضعيف إلى زيادة أوقات تحميل الصفحة، وبطء معالجة الطلبات، وتجربة مستخدم سيئة، مما قد يؤثر سلبًا على تحسين محركات البحث والمبيعات. من خلال تحسين أداء تطبيقات الويب من خلال ضبط MySQL، يمكن للمؤسسات والمؤسسات زيادة المبيعات ومشاهدات الصفحات ومعدلات التحويل وتصنيفات تحسين محركات البحث.
من خلال هذا البحث، نأمل في إبراز قيمة ضبط MySQL كوسيلة لتحسين أداء تطبيقات Laravel وتشجيع مطوري Laravel على أخذ هذه الممارسة بعين الاعتبار عند تحسين أداء تطبيقاتهم.
باستخدام أدوات مثل Relem، يمكن تكوين قواعد البيانات تلقائيًا لتحقيق الأداء الأمثل، مما يقلل العبء على فرق تطوير البرامج.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3