Most of the following tests were performed on Linux with the MySQL benchmarks, but they should give some indication for other operating systems and workloads.
        You obtain the fastest executables when you link with
        -static.
      
        On Linux, it is best to compile the server with
        pgcc and -O3. You need
        about 200MB memory to compile sql_yacc.cc
        with these options, because gcc or
        pgcc needs a great deal of memory to make all
        functions inline. You should also set CXX=gcc
        when configuring MySQL to avoid inclusion of the
        libstdc++ library, which is not needed. Note
        that with some versions of pgcc, the
        resulting binary runs only on true Pentium processors, even if
        you use the compiler option indicating that you want the
        resulting code to work on all x586-type processors (such as
        AMD).
      
By using a better compiler and compilation options, you can obtain a 10-30% speed increase in applications. This is particularly important if you compile the MySQL server yourself.
When we tested both the Cygnus CodeFusion and Fujitsu compilers, neither was sufficiently bug-free to allow MySQL to be compiled with optimizations enabled.
        The standard MySQL binary distributions are compiled with
        support for all character sets. When you compile MySQL yourself,
        you should include support only for the character sets that you
        are going to use. This is controlled by the
        --with-charset option to
        configure.
      
Here is a list of some measurements that we have made:
            If you use pgcc and compile everything
            with -O6, the mysqld
            server is 1% faster than with gcc 2.95.2.
          
            If you link dynamically (without
            -static), the result is 13% slower on
            Linux. Note that you still can use a dynamically linked
            MySQL library for your client applications. It is the server
            that is most critical for performance.
          
            If you strip your mysqld binary with
            strip mysqld, the resulting binary can be
            up to 4% faster.
          
            For a connection from a client to a server running on the
            same host, if you connect using TCP/IP rather than a Unix
            socket file, performance is 7.5% slower. (On Unix, if you
            connect to the hostname localhost, MySQL
            uses a socket file by default.)
          
For TCP/IP connections from a client to a server, connecting to a remote server on another host is 8-11% slower than connecting to a server on the same host, even for connections over 100Mb/s Ethernet.
When running our benchmark tests using secure connections (all data encrypted with internal SSL support) performance was 55% slower than with unencrypted connections.
            If you compile with --with-debug=full,
            most queries are 20% slower. Some queries may take
            substantially longer; for example, the MySQL benchmarks run
            35% slower. If you use --with-debug
            (without =full), the speed decrease is
            only 15%. For a version of mysqld that
            has been compiled with --with-debug=full,
            you can disable memory checking at runtime by starting it
            with the --skip-safemalloc option. The
            execution speed should then be close to that obtained when
            configuring with --with-debug.
          
On a Sun UltraSPARC-IIe, a server compiled with Forte 5.0 is 4% faster than one compiled with gcc 3.2.
On a Sun UltraSPARC-IIe, a server compiled with Forte 5.0 is 4% faster in 32-bit mode than in 64-bit mode.
            Compiling with gcc 2.95.2 for UltraSPARC
            with the options -mcpu=v8
            -Wa,-xarch=v8plusa gives 4% better performance.
          
On Solaris 2.5.1, MIT-pthreads is 8-12% slower than Solaris native threads on a single processor. With more load or CPUs, the difference should be larger.
            Compiling on Linux-x86 using gcc without
            frame pointers (-fomit-frame-pointer or
            -fomit-frame-pointer -ffixed-ebp) makes
            mysqld 1-4% faster.
          
        Binary MySQL distributions for Linux that are provided by MySQL
        AB used to be compiled with pgcc. We had to
        go back to regular gcc due to a bug in
        pgcc that would generate binaries that do not
        run on AMD. We will continue using gcc until
        that bug is resolved. In the meantime, if you have a non-AMD
        machine, you can build a faster binary by compiling with
        pgcc. The standard MySQL Linux binary is
        linked statically to make it faster and more portable.
      
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

