Import de données avec tmpfs dans MariaDB et MySQL
L’import de données dans MariaDB et MySQL prend plusieurs heures voir jours pour les bases de données relativement volumineuses.
Ce temps d’import est un problème majeur pour les systèmes de productions. Nous allons voir ici une astuce pour fortement diminuer ce temps : import de données avec tmpfs.
L’import de donnée avec tmpfs : la méthode pour accélérer l’import dans MariaDB et MySQL
Cette méthode permet de diviser par deux, voir plus, le temps nécessaire à l’importation des données.
Il faudra tout d’abord disposer d’une grande quantité de mémoire pour permettre l’utilisation d’un volume de stockage de type « tmpfs
« .
Ce type de stockage permet d’utiliser la mémoire vive et donc de bénéficier des très grandes performances en IO/s de celle-ci.
L’import d’une base de donnée génère une grande quantité d’entrées/sorties. L’astuce est donc d’utiliser temporairement un volume tmpfs
, permettant un très grand nombre d’entrées/sorties, le temps de l’import des bases de données MariaDB puis de revenir à un stockage « standard » pour le fonctionnement normal.
Pour cela, il faut tout d’abord créer et monter un volume tmpfs
suffisamment grand pour contenir l’ensemble de la base de donnée, ici 12Gio :
mount -t tmpfs -o size=12g tmpfs /var/lib/mysql.tmpfs
Puis après avoir éteint MariaDB, on copie l’ensemble de l’arborescence MariaDB existante sur ce volume de stockage :
cp -a /var/lib/mysql/* /var/lib/mysql.tmpfs/
On modifie alors la configuration de « mysqld
» dans /etc/my.cnf
pour utiliser ce nouvel emplacement :
-DataDir=/var/lib/mysql
+DataDir=/var/lib/mysql.tmpfs
On peut alors redémarrer « mysqld
» et importer les bases de données avec la méthode habituelle.
Une fois l’importation terminée, il nous reste plus qu’à déplacer les données du volume tmpfs
vers l’ancien DataDir.
Pour cela, on éteint « mysqld
« , on déplace l’ensemble de la nouvelle l’arborescence MariaDB :
cp -a /var/lib/mysql.tmpfs/* /var/lib/mysql/
Enfin, on remet l’ancienne configuration dans /etc/my.cnf
et on redémarre le serveur MariaDB.
Le volume tmpfs
pourra alors être démonté.
Virginie
Article fort sympathique, une lecture agréable. Ce blog est vraiment pas mal, et les sujets présents plutôt bons dans l’ensemble, bravo ! Virginie Brossard
Comparaison MariaDB Galera : serveurs MySQL - Blog Syloé
[…] que l’import de données dans MariaDB prend du temps, mais il existe un moyen pour l’accélérer avec […]