mysql tag archives

Optimiser MySql tuning

Optimiser les performances de MySQL

MySQLTuner est un script Perl qui effectue un audit  de vos bases de données MySQL. En résultat il fournit un tableau de bord simplifié se terminant par une liste d’indications de modifications du fichier de configuration de la base mysql : my.cnf
Par défaut le fichier de configuration de MySql a trés peu de chances de corrrespondre à votre serveur.

MySQLTuner vous « assiste » dans la configuration de votre serveur Mysql et propose des améliorations dans le but d’accroitre la stabilité et les performances du serveur. En quelques secondes, MySQLTuner affiche des statistiques sur votre serveur mysql et vous propose les options « qui vont bien ».

 

La documentation est orientée pour les utilisateurs de serveur Ubuntu. Elle est facilement transposable à d’autres systèmes d’exploitation.

Installer MySQLTuner

Ouvrir une console et exécuter les commandes suivantes :

Sur Debian


sudo apt-get install mysqltuner

Ou télécharger le script et le rendre exécutable

wget http://mysqltuner.com/mysqltuner.pl

chmod +x mysqltuner.pl

Pour lancer

sudo ./mysqltuner.pl

Utiliser l’application quelques heures

MySQLTuner se base sur des indicateurs de MySQL.
Il est donc nécessaire d’utiliser ses applications plusieurs heures afin que les optimisations préconisées soient efficaces.

Exécuter MySQLTuner

perl mysqltuner.pl

Auditer et améliorer les performances

 

Pour optimiser au mieux, il faut aussi utiliser tuning-primer, on a ainsi 2 outils pour une meilleure performance.

https://github.com/rackerhacker/MySQLTuner-perl

Développement-code     Étiquettes :

MySql optimiser les tables



Les tables d’une base MySql se fragmentent, surtout celles qui subissent beaucoup de modifications. Comme la fragmentation d’un disque dur, cela provoque des ralentissemnets sur les accés base. Il faut donc optimiser les tables.

Pour réorganiser les lignes fragmentées et éliminer l’espace perdu par les effacements et les modifications de lignes, vous pouvez exécuter l’utilitaire myisamchk en mode de restauration :

shell> myisamchk -r tbl_name

Vous pouvez optimiser une table de la même façon que vous le faîtes avec la commande SQL OPTIMIZE TABLE. OPTIMIZE TABLE effectue une réparation de la table, et une analyse des index, puis trie l’arbre d’index pour accélérer les recherches de clés.

Pour optimiser en automatique vos tables, voici un script PHP que vous pourrez mettre en Cron. Ce script optimise seulement les tables qui en ont besoin. Inutile en effet d’optimiser toutes les tables de vos bases.

 

 
< ?php
echo '<pre>' . "\n\n";
set_time_limit( 160 );
 
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
 
//Connection variables (A MODIFIER):
$h = 'localhost';
$u = 'root';
$p = "MON_PASSWORD";
//
$dummy_db = 'mysql';
 
/*The php->mysql API needs to connect to a database even when executing scripts like this.
If you got an error from this(permissions),
just replace this with the name of your database*/
 
$db_link = mysql_connect($h,$u,$p);
 
$res = mysql_db_query($dummy_db, 'SHOW DATABASES', $db_link) or die('Could not connect: ' . mysql_error());
echo 'Found '. mysql_num_rows( $res ) . ' databases' . "\n";
$dbs = array();
while ( $rec = mysql_fetch_array($res) )
{
$dbs [] = $rec [0];
}
 
foreach ( $dbs as $db_name )
{
echo "Database : $db_name \n\n";
$res = mysql_db_query($dummy_db, "SHOW TABLE STATUS FROM `" . $db_name . "`", $db_link) or die('Query : ' . mysql_error());
$to_optimize = array();
while ( $rec = mysql_fetch_array($res) )
{
if ( $rec['Data_free'] > 0 )
{
$to_optimize [] = $rec['Name'];
echo $rec['Name'] . ' needs optimization' . "\n";
}
}
if ( count ( $to_optimize ) > 0 )
{
foreach ( $to_optimize as $tbl )
{
mysql_db_query($db_name, "OPTIMIZE TABLE `" . $tbl ."`", $db_link );
}
}
}
 
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 6);
echo 'Parsed in ' . $total_time . ' secs' . "\n\n";
?>
Développement-code     Étiquettes : ,

Optimiser MySql my.cnf

Pour optimiser le fichier de configuration my.cnf voici un script tuning-primer qui teste votre serveur et vous indique les paramètres à modifier:

Il suffit de le télécharger. Mettez le dans /root et lancer le :

#sh tuning-primer.sh

Télécharger: http://day32.com/MySQL/tuning-primer.sh

système     Étiquettes :