سجلات الاستعلام البطيئة في MySQL: دليل تفصيلي

نشرت: 2023-08-01
أنشر الحب

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

يثبت تمكين Slow Query Log لـ MySQL أنه أحد الأصول القيمة في تشخيص تحديات الأداء والكفاءة التي قد تؤثر على خادمك. من خلال تحديد الاستعلامات ذات أوقات التنفيذ البطيئة بشكل ملحوظ ، يمكنك الحصول على القدرة على معالجتها بفعالية إما عن طريق إعادة هيكلة التطبيق المسؤول عن الاستعلامات أو تحسين الاستعلامات نفسها. يضمن هذا النهج الاستباقي إنشاء استعلاماتك بكفاءة مثالية ، مما يؤدي في النهاية إلى تحسين الأداء العام للنظام.

جدول المحتويات

مقدمة إلى MySQL

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

أنواع السجلات التي تم إنشاؤها بواسطة MySQL

هناك عدة أنواع من السجلات التي يتم إنشاؤها بواسطة MySQL ، يخدم كل منها غرضًا محددًا:

  1. سجل الاستعلام العام : يسجل هذا السجل كل استعلام SQL يتم تنفيذه على الخادم ، بغض النظر عن مصدره. إنها أداة قوية لتصحيح الأخطاء وفهم تسلسل الاستعلامات التي يتم تنفيذها ، ولكن يمكنها أيضًا إنشاء كمية هائلة من البيانات ، مما يجعلها مناسبة بشكل أساسي للتشخيصات قصيرة المدى.
  2. سجل الأخطاء: يسجل سجل الأخطاء أي أخطاء تمت مواجهتها أثناء تشغيل خادم MySQL. يمكن أن تتضمن هذه الأخطاء مشكلات تتعلق ببدء التشغيل أو إيقاف التشغيل أو أخطاء فادحة أخرى قد تؤثر على وظائف قاعدة البيانات. تساعد مراقبة سجل الأخطاء المسؤولين على تحديد المشكلات المحتملة ومعالجتها بسرعة.
  3. سجل الاستعلام البطيء: كما ذكرنا سابقًا ، يسجل سجل الاستعلام البطيء الاستعلامات التي تستغرق وقتًا أطول من حد معين مسبقًا للتنفيذ. هذا السجل مفيد في تحديد الاختناقات في الأداء والاستعلامات غير الفعالة ، مما يتيح للمسؤولين تحسين الأداء العام لقاعدة البيانات وتحسينه.
  4. السجل الثنائي: يحتوي السجل الثنائي على سجل لجميع تغييرات البيانات (الإدخالات والتحديثات والحذف) التي تم إجراؤها على قاعدة البيانات. يتم استخدامه لأغراض النسخ المتماثل ، مما يسمح بمزامنة البيانات عبر خوادم MySQL متعددة.
  5. سجل الترحيل: سجل الترحيل مخصص لنسخ MySQL المتماثل. يقوم بتخزين البيانات المستلمة من الخادم الرئيسي قبل تنفيذها على الخادم التابع في إعداد النسخ المتماثل.

كيفية تنشيط سجل الاستعلام البطيء في MySQL؟

فيما يلي خطوات تنشيط سجل الاستعلام البطيء لـ MySQL أو MariaDB.

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

2. قم بالوصول إلى ملف /etc/mysql/my.cnf باستخدام محرر نصوص. لهذا ، انتقل أولاً إلى نافذة SFTP الجديدة من Bitwise SSH Client.

انتقل إلى نافذة SFTP الجديدة من Bitwise SSH Client.

الآن ، اكتب / etc في شريط البحث للملفات البعيدة واضغط على Enter.

تفعيل MySQL Slow Query Log

افتح ملف mysql أو MariaDB.

تفعيل MySQL Slow Query Log

الآن حدد my.cnf ، وانقر بزر الماوس الأيمن وانقر فوق تحرير.

تفعيل MySQL Slow Query Log

سيظهر محرر نصوص. انسخ الأوامر التالية ، والصقها في أسفل الملف ، واحفظها.

 slow_query_log = 1 slow-query_log_file = /var/log/mysql-slow.log long_query_time = 2

3. افتح الآن محطة Bitwise وقم بتشغيل الأوامر التالية لإنشاء ملف /var/log/mysql-slow.log وتعيين مستخدم mysql كمالك له.

 touch /var/log/mysql-slow.log chown mysql:mysql /var/log/mysql-slow.log

4. لإعادة تشغيل MySQL أو MariaDB ، قم بتشغيل الأمر التالي.

 /usr/local/cpanel/scripts/restartsrv_mysql

قراءة سجل الاستعلام البطيء في MySQL

قم بالوصول إلى الملف الذي يحتوي على سجلات الاستعلام البطيئة باستخدام:

/var/log/mysql/mysql-slow.log

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

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

sudo -i mysqldumpslow /var/log/mysql/mysql-slow.log

سيتم الحصول على الإخراج أدناه:

قراءة سجل الاستعلام البطيء في MySQL

أسئلة وأجوبة

ما هو الغرض من الأمر mysqldumpslow؟

يخدم الأمر mysqldumpslow الغرض من تحليل وتلخيص محتوى MySQL Slow Query Log. يمكّنك من استخراج معلومات قيمة من ملف السجل ، بما في ذلك تفاصيل حول الاستعلامات البطيئة الأكثر تكرارًا وأوقات التنفيذ الخاصة بها. من خلال تنفيذ mysqldumpslow /var/log/mysql/mysql-slow.log ، يمكنك تحليل الاستعلامات البطيئة واكتسابها بطريقة فعالة.

هل يمكنني استخدام سجل الاستعلام البطيء للمراقبة طويلة المدى؟

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

كيف يمكن لـ Slow Query Log المساعدة في تشخيص مشاكل أداء قاعدة البيانات؟

يلعب Slow Query Log دورًا حيويًا في تشخيص مشاكل أداء قاعدة البيانات لأنه يحدد الاستعلامات ذات أوقات التنفيذ البطيئة. من خلال تحليل هذه الاستعلامات البطيئة ، يمكن للمسؤولين تحديد موقع اختناقات الأداء وعدم الكفاءة في قاعدة البيانات بدقة. مسلحين بهذه المعلومات ، يمكنهم المضي قدمًا في تحسين الاستعلامات أو إعادة هيكلة التطبيقات أو تنفيذ التغييرات الأساسية لتحسين أداء النظام بشكل كبير.

كيف يمكنني تحسين الاستعلامات بناءً على المعلومات من سجل الاستعلام البطيء؟

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

هل ينطبق Slow Query Log على MySQL فقط ، أم يمكن استخدامه مع أنظمة قواعد البيانات الأخرى؟

تم تصميم Slow Query Log حصريًا لأنظمة قواعد بيانات MySQL و MariaDB. بينما قد تقدم أنظمة إدارة قواعد البيانات الأخرى ميزات قابلة للمقارنة ، فمن المهم ملاحظة أن تنسيق السجل وطرق التنشيط يمكن أن تختلف بين الأنظمة المختلفة.