A maioria dos testes seguintes são feitos no Linux com os benchmarks do MySQL, mas eles devem fornecer alguma indicação para outros sistemas operacionais e workloads.
        Você obtêm um executável mais veloz quando ligado com
        -static.
      
        No Linux, você irá obter o código mais rápido quando
        compilando com pgcc e -03.
        Para compilar sql_yacc.cc com estas
        opções, você precisa de cerca de 200M de memória porque o
        gcc/pgcc precisa de muita memória para criar
        todas as funções em linha. Também deve ser configurado o
        parâmetro CXX=gcc para evitar que a
        biblioteca libstdc++ seja incluida (não é
        necessária). Perceba que com algumas versões do
        pgcc, o código resultante irá executar
        somente em verdadeiros processadores Pentium, mesmo que você
        utilize a opção do compilador para o código resultante que
        você quer, funcionando em todos os processadores do tipo x586
        (como AMD).
      
Só pelo fato de utilizar um melhor compilador e/ou melhores opções do compilador você pode obter um aumento de desempenho de 10-30% na sua aplicação. Isto é particularmente importante se você mesmo compila o servidor SQL!
Nós testamos ambos os compiladores Cygnus Codefusion e o Fujitsu, mas quando os testamos, nenhum dos dois era suficientemente livre de erros para que o MySQL compilasse com as otimizações.
        Quando você compila o MySQL deve incluir suporte somente para
        os conjuntos de caracteres que deseja usar. (Opção
        --with-charset=xxx). As distribuições
        binárias padrão do MySQL são compiladas com suporte para
        todos os conjuntos de caracteres.
      
Segue uma lista de algumas medidas que temos feito:
            Se você utiliza o pgcc e compila tudo
            com -O6, o servidor
            mysqld é 1% mais rápido do que com o
            gcc 2.95.2.
          
            Se você liga dinamicamente (sem
            -static), o resultado é 13% mais lento
            no Linux. Note que você ainda pode utilizar uma biblioteca
            do MySQL dinamicamente ligada à sua aplicação cliente. É
            só o servidor que é crítico para performance.
          
            Se você corta seu binário mysqld com
            strip libexec/mysqld, o binário gerado
            pode ficar até 4% mais rápido.
          
            Para uma conexão de um cliente para um servidor em
            execução na mesma máquina, se você conecta utilizando
            TCP/IP em vez de utilizar um arquivo socket Unix, o
            rendimento é 7.5% mais lento no mesmo computador. (Se você
            fizer conexão à localhost, o MySQL
            irá, por padrão, utilizar sockets).
          
Para conexões TCP/IP de um cliente para um servidor, conectando a um servidor remoto em outra máquina será 8-11% mais lento que conectando ao servidor local na mesma máquina, mesmo para conexões Ethernet de 100M.
Quando executar o nosso teste de benchamrk usando conexões seguras (todos os dados crptografados com suporte interno SSL) ele se torna 55% mais lento.
            Se você compilar com --with-debug=full, a
            maioria das consultas será 20% mais lentas. Algumas
            consultas podem demorar muito mais tempo (por exemplo, os
            benchmarks do MySQL demonstram 35% de perda). Se utilizar
            --with-debug, a queda será de apenas 15%.
            Para uma versão do mysqld compilada com
            --with-debug=full, você pode desabilitar a
            verificação de memória em tempo de execução iniciando-o
            com a opção --skip-safemalloc. O
            resultado final neste caso deve estar próximo de quando
            compilado com --with-debug.
          
            Em um Sun UltraSPARC-IIe, Forte 5.0 é 4% mais rápido que
            gcc 3.2.
          
Em um Sun UltraSPARC-IIe, Forte 5.0 é 4% mais rápido em modo de 32 bits que em modo de 64 bits.
            Compilando com gcc 2.95.2 para o
            ultrasparc com a opção -mcpu=v8
            -Wa,-xarch=v8plusa melhora a performance em 4%.
          
No Solaris 2.5.1, a MIT-pthreads é 8-12% mais lenta do que as threads nativas do Solaris em um único processador. Com mais carga/CPUs a diferença deve aumentar.
            Executar com --log-bin deixa o
            mysqld 1 % mais lento.
          
            Compilando no Linux-x86 com gcc sem frame pointers
            -fomit-frame-pointer ou
            -fomit-frame-pointer -ffixed-ebp deixa o
            mysqld 1-4% mais rápido.
          
        A distribuição MySQL-Linux fornecida pela MySQL AB é
        normalmente compilada com pgcc, mas vamos
        retornar ao uso do gcc pelo fato de um bug no
        pgcc que gera o código que não executa no
        AMD. Continuaremos a usar o gcc até que o
        bug seja resolvido. Neste meio tempo, se você possui uma
        máquina que não seja AMD, você pode ter um binário mais
        rápido compilando com o pgcc. O binário
        padrão do MySQL para Linux é ligado estaticamente para
        conseguir mais desempenho e ser mais portável.
      
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.

