مي إس إيو هو نظام إدارة قوي للقواعد المفتوحة المصدر العلاقية أو باختصار RDBMS. تم إصداره في عام 1995 (20 عامًا). يستخدم لغة الاستعلام المنظمة والتي هي على الأرجح الخيار الأكثر شهرة لإدارة المحتوى داخل قاعدة البيانات. أحدث إصدار لـ MySQL هو 5.6.25 وقد تم إصداره في 29 مايو 2015.
حقيقة مثيرة للاهتمام حول MySQL هي أن الاسم يأتي من مايكل ويدنيوس (مبتكر MySQL) ابنته ماي. حتى على الرغم من وجود العديد من الحقائق المثيرة للاهتمام حول MySQL ، فإن هذا المقال مخصص لتبيين بعض الممارسات المفيدة لمساعدتك على إدارة خادم MySQL الخاص بك.

في أبريل 2009 تم شراء مشروع MySQL من قبل Oracle. نتيجة لذلك تم إنشاء فرع جماعي لـ MySQL يسمى MariaDB. السبب الرئيسي لإنشاء الفرع كان للحفاظ على المشروع الحر تحت ترخيص المشاع الإبداعي العام.
اليوم MySQL و MariaDB هما من أكثر (إن لم يكن الأكثر شيوعًا) RDBMS المستخدمة عادة لتطبيقات الويب مثل WordPress، Joomla، Magento وغيرها.
سيوضح لك هذا المقال بعض النصائح الأساسية ، ولكنها مفيدة لتحسين وضبط أداء MySQL / MariaDB. يرجى تذكر أن هذا المقال يفترض أن لديك بالفعل تثبيت MySQL أو MariaDB. إذا كنت ما زلت تتساءل كيفية تثبيتها على نظامك ، يمكنك اتباع دليلنا المكثف هنا:
- تثبيت LAMP على RHEL / CentOS 7
- تثبيت LAMP على Fedora 22
- إعداد LAMP على Ubuntu 15.04
- تثبيت MariaDB على Debian 8
- تثبيت MariaDB على Gentoo Linux
- تثبيت MariaDB على Arch Linux
مهم: قبل أن نبدأ – لا تقبل هذه الاقتراحات عمياء. كل إعداد MySQL فريد ويتطلب تفكيرًا إضافيًا قبل إجراء أي تغييرات.
الأشياء التي تحتاج إلى معرفتها:
- ملف تكوين MySQL / MariaDB يقع في
/etc/my.cnf
. في كل مرة تقوم فيها بتعديل هذا الملف ، ستحتاج إلى إعادة تشغيل خدمة MySQL حتى تتمكن التغييرات الجديدة من العمل. - لكتابة هذا المقال ، تم استخدام إصدار MySQL 5.6 كنموذج.
1. تمكين InnoDB file-per-table
أولاً من المهم أن نشرح أن InnoDB هو محرك تخزين. تستخدم MySQL و MariaDB InnoDB كمحرك تخزين افتراضي. في الماضي، كانت MySQL تحتفظ بجداول قواعد البيانات والفهارس في مساحة جدول النظام. كانت هذه الطريقة مخصصة للخوادم التي تستخدم فقط لمعالجة قواعد البيانات وأقراص التخزين الخاصة بها لا تُستخدم لأي غرض آخر.
توفر InnoDB نهجًا أكثر مرونة وتحتفظ بمعلومات كل قاعدة بيانات في ملف بيانات .ibd
. كل ملف .ibd يمثل مساحة جدولية خاصة به. بهذه الطريقة، يمكن إتمام عمليات قواعد البيانات مثل “TRUNCATE” بشكل أسرع ويمكنك أيضًا استعادة المساحة غير المستخدمة عند حذف أو قص جدول قاعدة بيانات.
فائدة أخرى لهذا التكوين هي أنه يمكنك الاحتفاظ ببعض جداول قواعد البيانات في جهاز تخزين منفصل. يمكن أن يحسن ذلك بشكل كبير من حمل الإدخال/الإخراج على أقراصك.
يتم تمكين innodb_file_per_table افتراضيًا في MySQL 5.6 وما فوق. يمكنك رؤية ذلك في ملف /etc/my.cnf. تبدو التوجيهة على النحو التالي:
innodb_file_per_table=1
2. تخزين بيانات قاعدة بيانات MySQL على قسم منفصل
ملاحظة: هذا الإعداد يعمل فقط مع MySQL وليس مع MariaDB.
أحيانًا يمكن أن تبطئ عمليات قراءة/كتابة نظام التشغيل أداء خادم MySQL الخاص بك، خاصة إذا كانت على نفس القرص الصلب. بدلاً من ذلك، أوصي باستخدام قرص صلب منفصل (مفضلًا SSD) لخدمة MySQL.
لإتمام ذلك، ستحتاج إلى توصيل القرص الجديد بجهاز الكمبيوتر/الخادم الخاص بك. لأغراض هذه المقالة، سأفترض أن القرص سيكون تحت /dev/sdb.
الخطوة التالية هي تحضير القرص الجديد:
# fdisk /dev/sdb
اضغط الآن على “n” لإنشاء قسم جديد. ثم اضغط على “p” لجعل القسم الجديد أساسيًا. بعد ذلك، حدد رقم القسم من 1 إلى 4. بعد ذلك، ستحدد حجم القسم. اضغط هنا. في الخطوة التالية، ستحتاج إلى تكوين حجم القسم.
إذا كنت ترغب في استخدام القرص بأكمله، اضغط إلى الأمام مرة أخرى. وإلا، يمكنك ضبط حجم القسم الجديد يدويًا. عند الاستعداد، اضغط على “w” لكتابة التغييرات. الآن، سنحتاج إلى إنشاء نظام الملفات للقسم الجديد. يمكن القيام بذلك بسهولة باستخدام:
# mkfs.ext4 /dev/sdb1
الآن، سنقوم بتركيب القسم الجديد في مجلد. لقد أطلقت على مجلدي اسم “ssd” وأنشأته في المجلد الجذر:
# mkdir /ssd/
نحن جاهزون لتثبيت القسم الجديد الذي صنعناه في المجلد الجديد:
# mount /dev/sdb1 /ssd/
يمكنك تنفيذ التثبيت عند بدء التشغيل عن طريق إضافة السطر التالي في ملف /etc/fstab.
/dev/sdb1 /ssd ext3 defaults 0 0
الآن، أنت جاهز لنقل MySQL إلى القرص الجديد. أولاً، قم بإيقاف خدمة MySQL باستخدام:
# service mysqld stop
I would recommend you stopping Apache/nginx as well to prevent any attempts to write in the databases:
# service httpd stop # service nginx stop
الآن، قم بنسخ دليل MySQL بأكمله في القرص الجديد:
# cp /var/lib/mysql /ssd/ -Rp
قد يستغرق هذا بعض الوقت اعتمادًا على حجم قواعد بيانات MySQL الخاصة بك. بمجرد اكتمال هذه العملية، قم بإعادة تسمية دليل MySQL:
# mv /var/lib/mysql /var/lib/mysql-backup
بعد ذلك، سنقوم بإنشاء رابط رمزي.
# ln -s /ssd/mysql /var/lib/mysql
الآن، أنت جاهز لتشغيل خدمة MySQL وخدمة الويب:
# service mysqld start # service httpd start # service nginx start
في هذه النقطة، ستتم الوصول إلى قواعد بيانات MySQL الخاصة بك من القرص الجديد.
Source:
https://www.tecmint.com/mysql-mariadb-performance-tuning-and-optimization/