Mysql
 sql >> Base de données >  >> RDS >> Mysql

15 conseils utiles de réglage et d'optimisation des performances MySQL/MariaDB

MySQL est un puissant système de gestion de base de données relationnelle open source ou en bref RDBMS . Il est sorti en 1995 (20 ans). Il utilise le langage de requête structuré qui est probablement le choix le plus populaire pour gérer le contenu d'une base de données. La dernière version de MySQL est 5.6.25 et a été publié le 29 mai 2015 .

Un fait intéressant à propos de MySQL est le fait que le nom vient de Michael Widenius (le créateur de MySQL) fille My. Même bien qu'il existe de nombreux faits intéressants sur MySQL, cet article est destiné à vous montrer quelques pratiques utiles pour vous aider à gérer votre serveur MySQL.

En avril 2009 le projet MySQL a été acheté par Oracle. En conséquence, un fork de la communauté MySQL appelé MariaDB a été créé. La principale raison de la création du fork était de garder le projet gratuit sous la licence publique générale.

Aujourd'hui MySQL et MariaDB sont l'un des SGBDR les plus (sinon les plus) fréquemment utilisés pour les applications Web telles que WordPress , Joomla , Magento et autres.

Cet article vous montrera quelques conseils de base mais utiles pour optimiser les performances de MySQL/MariaDB. Veuillez garder à l'esprit que cet article suppose que vous avez déjà installé MySQL ou MariaDB. Si vous vous demandez toujours comment les installer sur votre système, vous pouvez suivre nos guides détaillés ici :

  1. Installation de LAMP sur RHEL/CentOS 7
  2. Installation de LAMP sur Fedora 22
  3. Configuration de LAMP sur Ubuntu 15.04
  4. Installer MariaDB sur Debian 8
  5. Installer MariaDB sur Gentoo Linux
  6. Installer MariaDB sur Arch Linux

Important :Avant de commencer - n'acceptez pas ces suggestions aveuglément. Chaque configuration MySQL est unique et nécessite une réflexion supplémentaire avant d'apporter des modifications.

Ce que vous devez savoir :

  1. Le fichier de configuration MySQL/MariaDB se trouve dans /etc/my.cnf . Chaque fois que vous modifiez ce fichier, vous devrez redémarrer le service MySQL pour que les nouvelles modifications puissent prendre effet.
  2. Pour avoir écrit cet article MySQL version 5.6 a été utilisé comme modèle.

1. Activer le fichier par table InnoDB

Tout d'abord, il est important d'expliquer que InnoDB est un moteur de stockage. MySQL et MariaDB utilisent InnoDB comme moteur de stockage par défaut. Dans le passé, MySQL conservait les tables et les index de la base de données dans un espace de table système. Cette approche était destinée aux serveurs dont le seul but est le traitement de la base de données et leur disque de stockage n'est pas utilisé à d'autres fins.

L'InnoDB offre une approche plus flexible et chaque information de base de données est conservée dans un .ibd fichier de données. Chaque .ibd Le fichier représente un tablespace qui lui est propre. De cette façon, les opérations de base de données telles que "TRUNCATE " peut être terminé plus rapidement et vous pouvez également récupérer de l'espace inutilisé lors de la suppression ou de la troncation d'une table de base de données.

Un autre avantage de cette configuration est le fait que vous pouvez conserver certaines des tables de la base de données dans un périphérique de stockage séparé. Cela peut grandement améliorer les I/O charger sur vos disques.

Le innodb_file_per_table est activé par défaut dans MySQL 5.6 et supérieur. Vous pouvez le voir dans /etc/my.cnf dossier. La directive ressemble à ceci :

innodb_file_per_table=1

2. Stocker les données de la base de données MySQL sur une partition séparée

Remarque  :Cette configuration ne fonctionne qu'avec MySQL, mais pas avec MariaDB.

Parfois, les lectures/écritures du système d'exploitation peuvent ralentir les performances de votre serveur MySQL, en particulier s'il est situé sur le même disque dur. Au lieu de cela, je recommanderais d'utiliser un disque dur séparé (de préférence SSD) pour le service MySQL.

Pour terminer, vous devrez connecter le nouveau disque à votre ordinateur/serveur. Pour les besoins de cet article, je supposerai que le lecteur sera sous /dev/sdb .

L'étape suivante consiste à préparer le nouveau lecteur :

# fdisk /dev/sdb

Appuyez maintenant sur "n ” pour créer une nouvelle partition. Appuyez ensuite sur "p ” pour rendre la nouvelle partition primaire. Après cela, définissez le numéro de partition de 1-4 . Après cela, vous sélectionnerez la taille de la partition. Appuyez sur Entrée ici. À l'étape suivante, vous devrez configurer la taille de la partition.

Si vous souhaitez utiliser le disque entier, appuyez une fois de plus sur Entrée. Sinon, vous pouvez définir manuellement la taille de la nouvelle partition. Lorsque vous êtes prêt, appuyez sur "w ” pour écrire les modifications. Nous devrons maintenant créer un système de fichiers pour notre nouvelle partition. Cela peut être facilement fait avec :

# mkfs.ext4 /dev/sdb1

Nous allons maintenant monter notre nouvelle partition dans un dossier. J'ai nommé mon dossier "ssd ” et créé dans le répertoire racine :

# mkdir /ssd/

Nous sommes prêts à monter la nouvelle partition que nous venons de créer dans le nouveau dossier :

# mount /dev/sdb1  /ssd/

Vous pouvez effectuer le montage au démarrage en ajoutant la ligne suivante dans /etc/fstab fichier.

/dev/sdb1 /ssd ext3 defaults 0 0

Vous êtes maintenant prêt à déplacer MySQL vers le nouveau disque. Arrêtez d'abord le service MySQL avec :

# service mysqld stop

Je vous recommande également d'arrêter Apache/nginx pour empêcher toute tentative d'écriture dans les bases de données :

# service httpd stop
# service nginx stop

Copiez maintenant l'intégralité du répertoire MySQL dans le nouveau lecteur :

# cp /var/lib/mysql /ssd/ -Rp

Cela peut prendre un certain temps selon le site de vos bases de données MySQL. Une fois ce processus terminé, renommez le répertoire MySQL :

# mv /var/lib/mysql /var/lib/mysql-backup

Ensuite, nous allons créer un lien symbolique.

# ln -s /ssd/mysql /var/lib/mysql

Vous êtes maintenant prêt à démarrer votre MySQL et votre service Web :

# service mysqld start
# service httpd start
# service nginx start

À ce stade, vos bases de données MySQL seront accessibles à partir du nouveau lecteur.

Pages :1 2 3 4