La plupart des tests suivants ont été réalisés sous Linux avec les outils comparatifs de MySQL, mais ils peuvent donner quelques indications pour d'autres systèmes d'exploitation et sur une charge de travail différente.
        Les exécutables les plus rapides sont obtenus en liant avec
        -static.
      
        Sur Linux, le code le plus rapide sera obtenu en compilant avec
        pgcc et -O3. Pour compiler
        sql_yacc.cc avec ces options, il faut
        environ 200 Mo de mémoire car gcc/pgcc
        demande beaucoup de mémoire pour créer toutes les fonctions
        d'une traite. Il est aussi possible d'utiliser
        CXX=gcc à la configuration de MySQL pour
        éviter l'inclusion de la bibliothèque
        libstdc++ (qui n'est pas nécessaire). Sachez
        que pour certaines versions de pgcc, le code
        résultant ne fonctionnera que sur de vrais processeurs Pentium,
        même si vous utilisez l'option du compilateur qui doit
        générer du code fonctionnant sur tour les types de processeurs
        x586 (comme AMD).
      
L'utilisation du meilleur compilateur et/ou de la meilleur option de compilation permet de gagner 10 à 30% de vitesse dans vos applications. C'est très important quand vous compilez le serveur SQL vous-même !
Nous avons compilé avec les compilateurs de Cygnus CodeFusion et de Fujitsu, mais aucun des deux n'était suffisamment exempt d'erreurs pour permettre la compilation de MySQL avec l'optimisation.
        A la compilation de MySQL, vous devriez uniquement utiliser le
        support des caractères que vous allez utiliser. (Option
        --with-charset=xxx.) Les distributions binaires
        standards de MySQL sont compilées avec le support de toutes les
        gammes de caractères.
      
Voici une liste des mesures que nous avons effectués:
            L'utilisation de pgcc et la compilation
            complète avec l'option -O6 donne un
            serveur mysqld 1% plus rapide qu'avec
            gcc 2.95.2.
          
            Si vous utilisez la liaison dynamique (sans
            -static), le résultat est 13% plus lent
            sur Linux. Sachez que vous pouvez néanmoins utiliser la
            liaison dynamique pour les bibliothèques de MySQL. Seul le
            serveur a des performances critiques.
          
            Si vous allégez votre binaire mysqld
            avec l'option strip libexec/mysqld, vous
            obtenez un binaire jusqu'à 4% plus rapide.
          
            Si vous utilisez TCP/IP plutôt que les sockets Unix, le
            résultat est 7.5% plus lent sur le même ordinateur. (Si
            vous vous connectez sur localhost, MySQL
            utilisera les sockets par défaut.)
          
Si vous vous connectez en TCP/IP depuis un autre ordinateur avec un lien Ethernet 100 Mo/s, le résultat sera 8 à 11% plus lent.
L'utilisation de connections sécurisées ( toutes les données chiffrées par le support interne de SSL) pour nos tests comparatifs a provoqué une perte de vitesse de 55%.
            Si vous compilez avec --with-debug=full,
            vous perdrez 20% de performances sur la plupart des
            requêtes, mais la perte peut être plus importante sur
            certaines requêtes (La suite de tests de MySQL tourne 35%
            plus lentement). Si vous utilisez
            --with-debug, vous ne perdrez que 15%. En
            démarrant une version de mysqld,
            compilée avec --with-debug=full, avec
            --skip-safemalloc, le résultat final
            devrait être proche d'une compilation avec
            --with-debug.
          
            Sur un Sun UltraSPARC-IIe, Forte 5.0 est 4% plus rapide que
            gcc 3.2.
          
Sur un Sun UltraSPARC-IIe, Forte 5.0 est 4% plus rapide en mode 32 bit qu'en mode 64 bit.
            La compilation avec gcc 2.95.2 sur
            UltraSPARC avec l'option -mcpu=v8
            -Wa,-xarch=v8plusa améliore les performances de
            4%.
          
            Sur Solaris 2.5.1, MIT-pthreads est 8-12%
            plus lent que la gestion native des threads de Solaris sur
            mono-processeur. Avec plus de charge ou de CPU, la
            différente devrait être encore plus grande.
          
            La compilation sur Linux-x86 avec gcc sans les pointeurs
            -fomit-frame-pointer ou
            -fomit-frame-pointer -ffixed-ebp rend
            mysqld 1 à 4% plus rapide.
          
        Autrefois les distributions fournies par MySQL AB de MySQL-Linux
        étaient compilées avec pgcc, mais nous
        avons dû revenir au simple gcc à cause d'un bogue dans
        pgcc qui générait du code qui ne
        fonctionnait pas sur AMD. Nous continuerons à utiliser gcc tant
        que ce bogue ne sera pas corrigé. Néanmoins, si vous avez une
        machine non-AMD, vous pouvez obtenir des binaires plus rapides
        en compilant avec pgcc. Le binaire standard
        de MySQL pour Linux est lié statiquement pour être plus rapide
        et plus portable.
      
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

