تقنيات التحسين لـ MySQL: تعزيز الأداء والسرعة

حدد الحقول الضرورية في SELECT الاستعلامات

بدلاً من تحديد جميع الحقول في SELECT الاستعلام ، اختر فقط الحقول المطلوبة لتقليل الحمل وتحسين سرعة الاستعلام.

على سبيل المثال ، إذا كنت تهتم فقط باسم العميل وعنوانه ، فاستبدل الاستعلام:

SELECT * FROM customers;

مع

SELECT name, address FROM customers;

 

إنشاء الفهارس

Index تساعد MySQL في البحث عن البيانات واستردادها بشكل أسرع. حدد الحقول التي يتم استخدامها بشكل متكرر في WHERE ، JOIN أو ORDER BY الجمل ، وقم بإنشاء فهارس لها.

على سبيل المثال ، في orders الجدول "" ، إذا customer_id كان الحقل "" مستخدمًا بشكل متكرر في WHERE أو JOIN استعلامات ، يمكنك إنشاء فهرس على النحو التالي:

CREATE INDEX idx_customer_id ON orders(customer_id);

 

استخدم الأنواع المناسبة من الفهارس

MySQL يوفر أنواعًا مختلفة من الفهارس مثل B-tree التجزئة و full-text. اختر نوع الفهرس المناسب بناءً على متطلبات الاستعلام لضمان الأداء الأمثل.

على سبيل المثال ، إذا كنت بحاجة إلى البحث عن نص داخل حقل بيانات ، فيمكنك إنشاء فهرس full-text على النحو التالي:

CREATE FULLTEXT INDEX idx_description ON products(description);

 

تحسين الاستعلامات

تُستخدم EXPLAIN لعرض خطة تنفيذ الاستعلام وتحليل كيفية MySQL تنفيذها. يساعدك هذا في تحديد مشكلات الأداء وتحسين الاستعلامات باستخدام الفهارس أو إعادة كتابة الاستعلامات.

على سبيل المثال ، لمشاهدة خطة الاستعلام الخاصة باستعلام SELECT ، قم بتشغيل الأمر التالي:

EXPLAIN SELECT * FROM orders WHERE customer_id = 123;

 

حدد عدد النتائج التي تم إرجاعها

عندما يُرجع الاستعلام عددًا كبيرًا من النتائج ، حدد عدد النتائج التي تم إرجاعها باستخدام LIMIT الجملة. يساعد هذا في تقليل التحميل وتحسين سرعة الاستعلام.

على سبيل المثال ، لإرجاع 10 نتائج فقط من جدول "المنتجات" ، يمكنك استخدام الاستعلام التالي:

SELECT * FROM products LIMIT 10;

 

استخدم INNER JOIN بدلاً من JOIN

INNER JOIN أداء أفضل من المعتاد JOIN. استخدم INNER JOIN عندما تهتم فقط بالسجلات التي لها تطابق في كلا الجدولين.

على سبيل المثال ، للانضمام إلى الجدولين " orders " customers استنادًا إلى customer_id الحقل "" ، يمكنك استخدام الاستعلام التالي:

SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;

 

استخدم الجداول المؤقتة بحذر

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

على سبيل المثال ، بدلاً من استخدام جدول مؤقت في الاستعلام التالي:

CREATE TEMPORARY TABLE temp_table SELECT * FROM products;

يمكنك محاولة تحسين الاستعلام للاستعلام المباشر عن البيانات من الجدول الأصلي.

 

ضبط تكوين MySQL

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

 

احذف البيانات غير الضرورية

احذف البيانات غير الضرورية أو انسخ البيانات القديمة احتياطيًا لتقليل حجم قاعدة البيانات وتحسين سرعة الاستعلام.

على سبيل المثال ، إذا كان لديك logs جدول يخزن سجلات قديمة ، يمكنك حذف سجلات أقدم من عام باستخدام الاستعلام التالي:

DELETE FROM logs WHERE created_at < '2022-01-01';

 

استخدم الذاكرة cache

تكوين ذاكرة MySQL cache لتخزين الاستعلامات التي يتم تنفيذها بشكل متكرر والبيانات التي تم الوصول إليها مؤخرًا. يساعد هذا في تقليل وقت الوصول إلى القرص وتحسين سرعة الاستعلام.

على سبيل المثال ، لتهيئة ذاكرة تخزين مؤقت بحجم 1 جيجابايت ، يمكنك تعديل ملف تكوين MySQL's "my.cnf" على النحو التالي:

[mysqld]  
...  
query_cache_type = 1  
query_cache_size = 1G  

 

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