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