@@ -1807,6 +1807,13 @@ is as tested as the other table types.
...
@@ -1807,6 +1807,13 @@ is as tested as the other table types.
This only affects the new code that checks if the table was closed properly
This only affects the new code that checks if the table was closed properly
on open and executes an automatic check/repair of the table if it wasn't.
on open and executes an automatic check/repair of the table if it wasn't.
@item MERGE tables -- Alpha / Beta
The usage of keys on @code{MERGE} tables is still not that tested. The
other part of the @code{MERGE} code is quite well tested.
@item FULLTEXT -- Alpha / Beta
Text search seams to work, but is still not widely used.
@end table
@end table
MySQL AB provides e-mail support for paying customers, but the @strong{MySQL}
MySQL AB provides e-mail support for paying customers, but the @strong{MySQL}
...
@@ -9029,9 +9036,9 @@ priority in one thread.
...
@@ -9029,9 +9036,9 @@ priority in one thread.
@item --memlock
@item --memlock
Lock the @code{mysqld} process in memory. This works only if your system
Lock the @code{mysqld} process in memory. This works only if your system
supports the @code{mlockall()} system call. This may help if you have
supports the @code{mlockall()} system call. This may help if you have
a problem where the opearting system is causing @code{mysqld} to swap on disk.
a problem where the operating system is causing @code{mysqld} to swap on disk.
@item --myisam-recover [=option[,option...]]] where option is one of DEFAULT, BACKUP or FORCE.
@item --myisam-recover [=option[,option...]]] where option is one of DEFAULT, BACKUP, FORCE or QUICK.
If this option is used, @code{mysqld} will on open check if the table is
If this option is used, @code{mysqld} will on open check if the table is
marked as crashed or if if the table wasn't closed properly
marked as crashed or if if the table wasn't closed properly
(The last option only works if you are running with @code{--skip-locking}).
(The last option only works if you are running with @code{--skip-locking}).
...
@@ -9044,10 +9051,15 @@ The following options affects how the repair works.
...
@@ -9044,10 +9051,15 @@ The following options affects how the repair works.
@item DEFAULT @tab The same as not giving any option to @code{--myisam-recover}.
@item DEFAULT @tab The same as not giving any option to @code{--myisam-recover}.
@item BACKUP @tab If the data table was changed during recover, save a backup of the @file{table_name.MYD} data file as @file{table_name-datetime.BAK}.
@item BACKUP @tab If the data table was changed during recover, save a backup of the @file{table_name.MYD} data file as @file{table_name-datetime.BAK}.
@item FORCE @tab Run recover even if we will loose more than one row from the .MYD file.
@item FORCE @tab Run recover even if we will loose more than one row from the .MYD file.
@item QUICK @tab Don't check the rows in the table if there isn't any delete blocks.
@end multitable
@end multitable
Before a table is automaticly repaired, mysqld will add a note about this
Before a table is automaticly repaired, mysqld will add a note about
in the error log.
this in the error log. If you want to be able to recover from most
things without user intervention, you should use the options
@code{BACKUP,FORCE}. This will force a repair of a table even if some rows
would be deleted, but it will keep the old data file as a backup so that
you can later examine what happened.
@item --pid-file=path
@item --pid-file=path
Path to pid file used by @code{safe_mysqld}.
Path to pid file used by @code{safe_mysqld}.
...
@@ -16312,7 +16324,8 @@ Version 3.22. @code{ADDDATE()} and @code{SUBDATE()} are synonyms for
...
@@ -16312,7 +16324,8 @@ Version 3.22. @code{ADDDATE()} and @code{SUBDATE()} are synonyms for
@code{DATE_ADD()} and @code{DATE_SUB()}.
@code{DATE_ADD()} and @code{DATE_SUB()}.
In @strong{MySQL} Version 3.23, you can use @code{+} and @code{-} instead of
In @strong{MySQL} Version 3.23, you can use @code{+} and @code{-} instead of
@code{DATE_ADD()} and @code{DATE_SUB()}. (See example)
@code{DATE_ADD()} and @code{DATE_SUB()} if the expression on the right side is
a date or datetime column. (See example)
@code{date} is a @code{DATETIME} or @code{DATE} value specifying the starting
@code{date} is a @code{DATETIME} or @code{DATE} value specifying the starting
date. @code{expr} is an expression specifying the interval value to be added
date. @code{expr} is an expression specifying the interval value to be added
...
@@ -20214,7 +20227,9 @@ this join type is good.
...
@@ -20214,7 +20227,9 @@ this join type is good.
@item range
@item range
Only rows that are in a given range will be retrieved, using an index to
Only rows that are in a given range will be retrieved, using an index to
select the rows. The @code{ref} column indicates which index is used.
select the rows. The @code{key} column indicates which index is used.
The @code{key_len} contains the longest key part that was used.
The @code{ref} column will be NULL for this type.
@item index
@item index
This is the same as @code{ALL}, except that only the index tree is
This is the same as @code{ALL}, except that only the index tree is
...
@@ -21256,7 +21271,7 @@ of both worlds.
...
@@ -21256,7 +21271,7 @@ of both worlds.
@menu
@menu
* MyISAM:: MyISAM tables
* MyISAM:: MyISAM tables
* MERGE::
* MERGE:: MERGE tables
* ISAM:: ISAM tables
* ISAM:: ISAM tables
* HEAP:: HEAP tables
* HEAP:: HEAP tables
* BDB:: BDB or Berkeley_db tables
* BDB:: BDB or Berkeley_db tables
...
@@ -21368,11 +21383,37 @@ The following options to @code{mysqld} can be used to change the behavior of
...
@@ -21368,11 +21383,37 @@ The following options to @code{mysqld} can be used to change the behavior of
@multitable @columnfractions .40 .60
@multitable @columnfractions .40 .60
@item @strong{Option} @tab @strong{Meaning}
@item @strong{Option} @tab @strong{Meaning}
@item @code{--myisam-recover} @tab Automatic recover of crashed tables.
@item @code{--myisam-recover=#} @tab Automatic recover of crashed tables.
@item @code{-O myisam_sort_buffer_size=#} @tab Buffer used when recovering tables.
@item @code{-O myisam_sort_buffer_size=#} @tab Buffer used when recovering tables.
@item @code{--delay-key-write-for-all-tables} @tab Don't flush key buffers between writes for any MyISAM table
@item @code{--delay-key-write-for-all-tables} @tab Don't flush key buffers between writes for any MyISAM table
@end multitable
@end multitable
The automatic recovery is activated if you start mysqld with
fetch_all_rows($dbh,"select count(distinct dummy1) from bench1");
fetch_all_rows($dbh,"select count(distinct dummy1) from bench1");
...
@@ -834,7 +834,7 @@ if ($limits->{'func_odbc_floor'} && $limits->{'left_outer_join'})
...
@@ -834,7 +834,7 @@ if ($limits->{'func_odbc_floor'} && $limits->{'left_outer_join'})
$count=$estimated=0;
$count=$estimated=0;
$loop_time=new Benchmark;
$loop_time=new Benchmark;
for($i=0 ;$i <$small_loop_count;$i++)
for($i=1 ;$i <=$small_loop_count;$i++)
{
{
$count+=fetch_all_rows($dbh,"select count(a.dummy1),count(b.dummy1) from bench1 as a left outer join bench1 as b on (a.id2=b.id3) where b.id3 is null");
$count+=fetch_all_rows($dbh,"select count(a.dummy1),count(b.dummy1) from bench1 as a left outer join bench1 as b on (a.id2=b.id3) where b.id3 is null");