:: DEVELOPER ZONE
Ceci devrait comprendre une description technique de la suite de tests
de performances de MySQL (et crash-me), mais cette description
n'est pas encore écrite. Actuellement, vous pouvez vous faire une idée
des tests en regardant le code et les résultats dans le répertoire
sql-bench dans toutes les distributions de sources de MySQL.
Cette suite de test est censée permettre à utilisateur de comparer ce qu'une implémentation SQL donnée réussi bien ou mal.
Sachez que ces tests de performances lancent en un seul thread, donc il mesure le temps minimum pour chaque opération. Nous projetons pour le futur d'ajouter de nombreux tests multi-thread à cette suite de tests.
Par exemple, (tous ont été lancés sur une même machine NT 4.0)
| Lecture de 2000000 lignes indexées | Secondes | Secondes |
| mysql | 367 | 249 |
| mysql_odbc | 464 | |
| db2_odbc | 1206 | |
| informix_odbc | 121126 | |
| ms-sql_odbc | 1634 | |
| oracle_odbc | 20800 | |
| solid_odbc | 877 | |
| sybase_odbc | 17614 |
| Insertion de lignes (350768 | Secondes | Secondes |
| mysql | 381 | 206 |
| mysql_odbc | 619 | |
| db2_odbc | 3460 | |
| informix_odbc | 2692 | |
| ms-sql_odbc | 4012 | |
| oracle_odbc | 11291 | |
| solid_odbc | 1801 | |
| sybase_odbc | 4802 |
Le test ci-dessus a été exécuté avec un index de cache de 8 Mo.
Nous avons rassemblé d'autres résultats de tests à http://www.mysql.com/information/benchmarks.html.
Notez que Oracle n'est pas inclus dans ces tests car ils ont demandé à être retirés. Tous les tests d'Oracle doivent être faits par Oracle! Nous croyons que cette politique va biaiser fortement les tests en faveur de Oracle, car les tests ci-dessus sont supposés montrer ce qu'une installation simple peut faire pour un client simple.
Pour utiliser la suite de tests, les prerequis suivants doivent être vérifiés :
La suite de tests est disponible dans la distribution source de MySQL, et vous devez avoir téléchargé cette distribution. Vous pouvez télécharger la version publiée sur le site de http://www.mysql.com/downloads/, ou utiliser celle du serveur de développement (see Section 2.3.3, « Installer à partir de l'arbre source de développement »).
Les scripts de tests ont été écrits en Perl, et utilisent le module
Perl DBI pour accéder aux serveurs, donc DBI doit être installée. Vous aurez
aussi besoin des pilotes spécifiques DBD de chaque serveur que vous voulez
tester. Par exemple, pour tester MySQL, PostgreSQL et DB2, les modules
DBD::mysql, DBD::Pg et DBD::DB2 doivent être installés.
See Section 2.7, « Commentaires sur l'installation de Perl ».
La suite de tests est située dans le dossier sql-bench de la distribution
source de MySQL.
Pour exécuter la suite de tests, compilez MySQL, puis allez dans le dossier
sql-bench et exécutez le script run-all-tests :
shell> cd sql-bench shell> perl run-all-tests --server=server_name
server_name est un des serveurs supportés. Pour avoir la liste de toutes
les options et serveurs supportés. utilisez cette commande :
shell> perl run-all-tests --help
Le script crash-me est aussi situé dans le dossier sql-bench.
crash-me essaie de déterminer quelles fonctionnalités un serveur
supporte, et quelles sont ses limitations. Par exemple, le test détermine :
Les types de colonnes supportés
Le nombre d'index supportés
Les fonctions supportées
La taille maximale d'une requête
La taille maximale d'une colonne VARCHAR
Vous pouvez retrouver les résultats de crash-me sur de nombreuses bases de données
à http://www.mysql.com/information/crash-me.php.
© 1995-2005 MySQL AB. All rights reserved.
