In the MySQL benchmarks, we got a 6% speedup on an UltraSPARC when
In the MySQL benchmarks, we got a 6% speedup on an UltraSPARC when
using Sun Workshop 5.3 compared to using gcc with -mcpu flags.
using Sun Workshop 5.3 compared to using gcc with -mcpu flags.
If you get a problem with @code{fdatasync} or @code{sched_yield},
If you get a problem with @code{fdatasync} or @code{sched_yield},
...
@@ -17767,7 +17767,7 @@ The different check types stand for the following:
...
@@ -17767,7 +17767,7 @@ The different check types stand for the following:
@item @code{FAST} @tab Only check tables which haven't been closed properly.
@item @code{FAST} @tab Only check tables which haven't been closed properly.
@item @code{CHANGED} @tab Only check tables which have been changed since last check or haven't been closed properly.
@item @code{CHANGED} @tab Only check tables which have been changed since last check or haven't been closed properly.
@item @code{MEDIUM} @tab Scan rows to verify that deleted links are okay. This also calculates a key checksum for the rows and verifies this with a calcualted checksum for the keys.
@item @code{MEDIUM} @tab Scan rows to verify that deleted links are okay. This also calculates a key checksum for the rows and verifies this with a calcualted checksum for the keys.
@item @code{EXTENDED} @tab Do a full key lookup for all keys for each row. This ensures that the table is 100% consistent, but will take a long time!
@item @code{EXTENDED} @tab Do a full key lookup for all keys for each row. This ensures that the table is 100% consistent, but will take a long time!
@end multitable
@end multitable
For dynamically sized @code{MyISAM} tables a started check will always
For dynamically sized @code{MyISAM} tables a started check will always
...
@@ -26844,7 +26844,7 @@ would be available. Some of the cases where this happens are:
...
@@ -26844,7 +26844,7 @@ would be available. Some of the cases where this happens are:
@itemize @bullet
@itemize @bullet
@item
@item
If the use of the index would require MySQL to access more
If the use of the index would require MySQL to access more
than 30% of the rows in the table. (In this case a table scan is
than 30% of the rows in the table. (In this case a table scan is
probably much faster, as this will require us to do much fewer seeks.)
probably much faster, as this will require us to do much fewer seeks.)
Note that if such a query uses @code{LIMIT} to only retrieve
Note that if such a query uses @code{LIMIT} to only retrieve
part of the rows, MySQL will use an index anyway, as it can
part of the rows, MySQL will use an index anyway, as it can
...
@@ -27326,7 +27326,7 @@ use the compiler option that you want the resulting code to be working on
...
@@ -27326,7 +27326,7 @@ use the compiler option that you want the resulting code to be working on
all x586 type processors (like AMD).
all x586 type processors (like AMD).
By just using a better compiler and/or better compiler options you can
By just using a better compiler and/or better compiler options you can
get a 10-30% speed increase in your application. This is particularly
get a 10-30% speed increase in your application. This is particularly
important if you compile the SQL server yourself!
important if you compile the SQL server yourself!
We have tested both the Cygnus CodeFusion and Fujitsu compilers, but
We have tested both the Cygnus CodeFusion and Fujitsu compilers, but
...
@@ -27352,7 +27352,7 @@ performance.
...
@@ -27352,7 +27352,7 @@ performance.
@item
@item
If you strip your @code{mysqld} binary with @code{strip libexec/mysqld},
If you strip your @code{mysqld} binary with @code{strip libexec/mysqld},
the resulting binary can be up to 4% faster.
the resulting binary can be up to 4% faster.
@item
@item
If you connect using TCP/IP rather than Unix sockets, the result is 7.5%
If you connect using TCP/IP rather than Unix sockets, the result is 7.5%
...
@@ -27361,27 +27361,27 @@ MySQL will, by default, use sockets.)
...
@@ -27361,27 +27361,27 @@ MySQL will, by default, use sockets.)
@item
@item
If you connect using TCP/IP from another computer over a 100M Ethernet,
If you connect using TCP/IP from another computer over a 100M Ethernet,
things will be 8-11% slower.
things will be 8-11% slower.
@item
@item
When running our benchmark with secure connections (all data encrypted
When running our benchmark tests using secure connections (all data
with internal ssl support) things where 55 % slower.
encrypted with internal SSL support) things were 55% slower.
@item
@item
If you compile with @code{--with-debug=full}, then you will loose 20%
If you compile with @code{--with-debug=full}, then you will loose 20%
for most queries, but some queries may take substantially longer (The
for most queries, but some queries may take substantially longer (The
MySQL benchmarks ran 35% slower)
MySQL benchmarks ran 35% slower)
If you use @code{--with-debug}, then you will only loose 15%.
If you use @code{--with-debug}, then you will only loose 15%.
By starting a @code{mysqld} version compiled with @code{--with-debug=full}
By starting a @code{mysqld} version compiled with @code{--with-debug=full}
with @code{--skip-safemalloc} the end result should be close to when
with @code{--skip-safemalloc} the end result should be close to when
configuring with @code{--with-debug}.
configuring with @code{--with-debug}.
@item
@item
On a Sun SPARCstation 20, SunPro C++ 4.2 is 5% faster than @code{gcc} 2.95.2.
On a Sun SPARCstation 20, SunPro C++ 4.2 is 5% faster than @code{gcc} 2.95.2.
@item
@item
Compiling with @code{gcc} 2.95.2 for UltraSPARC with the option
Compiling with @code{gcc} 2.95.2 for UltraSPARC with the option
@code{-mcpu=v8 -Wa,-xarch=v8plusa} gives 4% more performance.
@code{-mcpu=v8 -Wa,-xarch=v8plusa} gives 4% more performance.
@item
@item
On Solaris 2.5.1, MIT-pthreads is 8-12% slower than Solaris native
On Solaris 2.5.1, MIT-pthreads is 8-12% slower than Solaris native
...
@@ -27389,7 +27389,7 @@ threads on a single processor. With more load/CPUs the difference should
...
@@ -27389,7 +27389,7 @@ threads on a single processor. With more load/CPUs the difference should
get bigger.
get bigger.
@item
@item
Running with @code{--log-bin} makes @strong{[MySQL} 1% slower.
Running with @code{--log-bin} makes @strong{[MySQL} 1% slower.
@item
@item
Compiling on Linux-x86 using gcc without frame pointers
Compiling on Linux-x86 using gcc without frame pointers
...
@@ -27775,7 +27775,7 @@ option. That makes it skip the updating of the last access time in the
...
@@ -27775,7 +27775,7 @@ option. That makes it skip the updating of the last access time in the
inode and by this will avoid some disk seeks.
inode and by this will avoid some disk seeks.
@item
@item
On Linux, you can get much more performance (up to 100% under load is
On Linux, you can get much more performance (up to 100% under load is
not uncommon) by using hdpram to configure your disk's interface! The
not uncommon) by using hdpram to configure your disk's interface! The
following should be quite good hdparm options for MySQL (and
following should be quite good hdparm options for MySQL (and
probably many other applications):
probably many other applications):
...
@@ -37121,7 +37121,7 @@ compression.
...
@@ -37121,7 +37121,7 @@ compression.
Internal handling of one @code{AUTO_INCREMENT} column. @code{MyISAM}
Internal handling of one @code{AUTO_INCREMENT} column. @code{MyISAM}
will automatically update this on @code{INSERT/UPDATE}. The
will automatically update this on @code{INSERT/UPDATE}. The
@code{AUTO_INCREMENT} value can be reset with @code{myisamchk}. This
@code{AUTO_INCREMENT} value can be reset with @code{myisamchk}. This
will make @code{AUTO_INCREMENT} columns faster (at least 10%) and old
will make @code{AUTO_INCREMENT} columns faster (at least 10%) and old
numbers will not be reused as with the old @code{ISAM}. Note that when an
numbers will not be reused as with the old @code{ISAM}. Note that when an
@code{AUTO_INCREMENT} is defined on the end of a multi-part-key the old
@code{AUTO_INCREMENT} is defined on the end of a multi-part-key the old