You can use the @code{LOW_PRIORITY} options with @code{INSERT} if you
want to prioritize retrieval in some specific cases. @xref{INSERT, ,
@code{INSERT}}.
You can use the @code{LOW_PRIORITY} options with @code{INSERT},
@code{UPDATE} or @code{DELETE} or @code{HIGH_PRIORITY} with
@code{SELECT} if you want to prioritize retrieval in some specific
cases. You can also start @code{mysqld} with @code{--low-priority-updates}
to get the same behaveour.
Using @code{SQL_BUFFER_RESULT} can also help making table locks shorter.
@xref{SELECT}.
You could also change the locking code in @file{mysys/thr_lock.c} to use a
single queue. In this case, write locks and read locks would have the same
@@ -30058,9 +30076,11 @@ high lock speed. For large tables, table locking is MUCH better than
row locking for most applications, but there are, of course, some
pitfalls.
For @code{BDB} tables, @strong{MySQL} only uses table locking if you
explicitely lock the table with @code{LOCK TABLES} or execute a command that
will modify every row in the table, like @code{ALTER TABLE}.
For @code{BDB} and @code{InnoDB} tables, @strong{MySQL} only uses table
locking if you explicitely lock the table with @code{LOCK TABLES} or
execute a command that will modify every row in the table, like
@code{ALTER TABLE}. For these table types we recommend you to not use
@code{LOCK TABLES} at all.
In @strong{MySQL} Version 3.23.7 and above, you can insert rows into
@code{MyISAM} tables at the same time other threads are reading from the
@@ -31577,12 +31597,40 @@ the following configure options:
@multitable @columnfractions .3 .7
@item @strong{Option} @tab @strong{Comment}
@item --with-server-suffix=-max @tab Add a suffix to the @code{mysqld} version string.
@item --with-server-suffix=-Max @tab Add a suffix to the @code{mysqld} version string.
@item --with-bdb @tab Support for Berkeley DB (BDB) tables
@item --with-innodb @tab Support for InnoDB tables.
@item CFLAGS=-DUSE_SYMDIR @tab Symbolic links support for Windows.
@end multitable
Note that as Berkeley DB and InnoDB are not available for all platforms,
some of the @code{Max} binaries may not have support for both of these.
You can check which table types are supported by doing the following
query:
@example
mysql> show variables like "have_%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_bdb | YES |
| have_gemini | NO |
| have_innodb | NO |
| have_isam | YES |
| have_raid | YES |
| have_ssl | NO |
+---------------+-------+
@end example
The meaning of the values are:
@multitable @columnfractions .3 .7
@item @strong{Value} @tab @strong{Meaning}.
@item YES @tab The option is activated and usable.
@item NO @tab @strong{MySQL} is not compiled with support for this option.
@item DISABLED @tab The xxxx option is disabled because one started @code{mysqld} with @code{--skip-xxxx} or because one didn't start @code{mysqld} with all needed options to enable the option. In this case the @code{hostname.err} file should contain a reason for why the option is disabled.
@end multitable
@code{safe_mysqld} will automaticly try to start any @code{mysqld} binary
with the @code{-max} prefix. This makes it very easy to test out a
another @code{mysqld} binary in an existing installation. Just
@@ -31590,9 +31638,10 @@ run @code{configure} with the options you want and then install the
new @code{mysqld} binary as @code{mysqld-max} in the same directory
where your old @code{mysqld} binary is. @xref{safe_mysqld}.
The @code{mysqld-max} RPM uses this @code{safe_mysqld} feature. It just
installs the @code{mysqld-max} executable and @code{safe_mysqld} will
automaticly use this when @code{mysqld} is restarted.
The @code{mysqld-max} RPM uses the above mentioned @code{safe_mysqld}
feature. It just installs the @code{mysqld-max} executable and
@code{safe_mysqld} will automaticly use this executable when
@code{safe_mysqld} is restarted.
@cindex tools, safe_mysqld
@cindex scripts
@@ -37469,13 +37518,16 @@ default port number and socket file pathname, and the @code{--prefix} value
should specify an installation directory different than the one under which
the existing @strong{MySQL} installation is located.
You can check the socket and port used by any currently executing
@strong{MySQL} server with this command:
You can check the socket used by any currently executing @strong{MySQL} server