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.
If you get a problem with @code{fdatasync} or @code{sched_yield},
...
...
@@ -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{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{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
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:
@itemize @bullet
@item
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.)
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
...
...
@@ -27326,7 +27326,7 @@ use the compiler option that you want the resulting code to be working on
all x586 type processors (like AMD).
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!
We have tested both the Cygnus CodeFusion and Fujitsu compilers, but
...
...
@@ -27352,7 +27352,7 @@ performance.
@item
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
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.)
@item
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
When running our benchmark with secure connections (all data encrypted
with internal ssl support) things where 55 % slower.
When running our benchmark tests using secure connections (all data
encrypted with internal SSL support) things were 55% slower.
@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
MySQL benchmarks ran 35% slower)
If you use @code{--with-debug}, then you will only loose 15%.
MySQL benchmarks ran 35% slower)
If you use @code{--with-debug}, then you will only loose 15%.
By starting a @code{mysqld} version compiled with @code{--with-debug=full}
with @code{--skip-safemalloc} the end result should be close to when
configuring with @code{--with-debug}.
@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
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
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
get bigger.
@item
Running with @code{--log-bin} makes @strong{[MySQL} 1% slower.
Running with @code{--log-bin} makes @strong{[MySQL} 1% slower.
@item
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
inode and by this will avoid some disk seeks.
@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
following should be quite good hdparm options for MySQL (and
probably many other applications):
...
...
@@ -37121,7 +37121,7 @@ compression.
Internal handling of one @code{AUTO_INCREMENT} column. @code{MyISAM}
will automatically update this on @code{INSERT/UPDATE}. The
@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
@code{AUTO_INCREMENT} is defined on the end of a multi-part-key the old