10.3 Comment la compilation et le link affecte la vitesse de MySQL

La plus part des tests suivants ont été menés sous Linux, et avec la suite de test de MySQL, mais les résultats doivent être transposables aux autres systèmes d'exploitation.

L'exécutable le plus rapide est obtenu avec l'option de link -static. Utiliser des sockets Unix plutôt que TCP/IP pour se connecter à la base de données est aussi plus efficace.

Avec Linux, l'exécutable le plus rapide fut obtenu en compilant avec pgcc et -O6. Pour compiler ``sql_yacc.cc'' avec ces options, vous aurez besoin de 180Mo de méoire, car gcc/pgcc requiert beaucoup de mémoire pour rendre toutes les fonctions inline. Vous devriez aussi utiliser l'option CXX=gcc lors de la configuration de MySQL pour éviter l'inclusion de la bibliothèque libstdc++ .

  • Si vous utilisez pgcc et compilez tout avec -O6, le serveur MySQL sera 11% plus rapide qu'avec gcc.
  • En faisant un link dynamique (sans -static), le résultat est 13% plus lent.
  • Si vous vous connectez avec TCP/IP plutôt qu'avec les sockets Unix, l'ensemble est 7.5% plus lent.
  • Sur une station Sun SPARC Station 10, gcc 2.7.3 est 13% plus rapide que Sun Pro C++ 4.2.
  • Avec Solaris 2.5.1, MIT-pthreads est 8-12% plus lent que les thread natifs Solaris.

La distribution MySQL-Linux fournie pas TcX est compilée avec pgcc et linkée statiquement.