mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
manual.texi British-ise some -ize words
manual.texi formatting fixups Docs/manual.texi: British-ise some -ize words
This commit is contained in:
@@ -14933,7 +14933,7 @@ system. This section describes how it works.
|
|||||||
Anyone using MySQL on a computer connected to the Internet
|
Anyone using MySQL on a computer connected to the Internet
|
||||||
should read this section to avoid the most common security mistakes.
|
should read this section to avoid the most common security mistakes.
|
||||||
|
|
||||||
In discussing security, we emphasize the necessity of fully protecting the
|
In discussing security, we emphasise the necessity of fully protecting the
|
||||||
entire server host (not simply the MySQL server) against all types
|
entire server host (not simply the MySQL server) against all types
|
||||||
of applicable attacks: eavesdropping, altering, playback, and denial of
|
of applicable attacks: eavesdropping, altering, playback, and denial of
|
||||||
service. We do not cover all aspects of availability and fault tolerance
|
service. We do not cover all aspects of availability and fault tolerance
|
||||||
@@ -19647,7 +19647,7 @@ is high, it is a good indication that your queries and tables are properly index
|
|||||||
@item @code{Handler_read_next} @tab Number of requests to read next row in key order. This
|
@item @code{Handler_read_next} @tab Number of requests to read next row in key order. This
|
||||||
will be incremented if you are querying an index column with a range constraint. This also
|
will be incremented if you are querying an index column with a range constraint. This also
|
||||||
will be incremented if you are doing an index scan.
|
will be incremented if you are doing an index scan.
|
||||||
@item @code{Handler_read_prev} @tab Number of requests to read previous row in key order. This is mainly used to optimize @code{ORDER BY ... DESC}.
|
@item @code{Handler_read_prev} @tab Number of requests to read previous row in key order. This is mainly used to optimise @code{ORDER BY ... DESC}.
|
||||||
@item @code{Handler_read_rnd} @tab Number of requests to read a row based on a fixed position.
|
@item @code{Handler_read_rnd} @tab Number of requests to read a row based on a fixed position.
|
||||||
This will be high if you are doing a lot of queries that require sorting of the result.
|
This will be high if you are doing a lot of queries that require sorting of the result.
|
||||||
@item @code{Handler_read_rnd_next} @tab Number of requests to read the next row in the datafile.
|
@item @code{Handler_read_rnd_next} @tab Number of requests to read the next row in the datafile.
|
||||||
@@ -23672,7 +23672,7 @@ For more details, please see @ref{Replication FAQ}.
|
|||||||
|
|
||||||
If you want to become a real MySQL replication guru, we suggest that you
|
If you want to become a real MySQL replication guru, we suggest that you
|
||||||
begin by studying, pondering, and trying all commands
|
begin by studying, pondering, and trying all commands
|
||||||
mentioned in @ref{Replication SQL}. You should also familiarize yourself
|
mentioned in @ref{Replication SQL}. You should also familiarise yourself
|
||||||
with replication startup options in @file{my.cnf} in
|
with replication startup options in @file{my.cnf} in
|
||||||
@ref{Replication Options}.
|
@ref{Replication Options}.
|
||||||
|
|
||||||
@@ -23960,7 +23960,7 @@ the slave. The other bug is that if the ignored table gets partially
|
|||||||
updated, the slave thread will not notice that the table actually should
|
updated, the slave thread will not notice that the table actually should
|
||||||
have been ignored and will suspend the replication process. While the
|
have been ignored and will suspend the replication process. While the
|
||||||
above bugs are conceptually very simple to fix, we have not yet found a way
|
above bugs are conceptually very simple to fix, we have not yet found a way
|
||||||
to do this without a sigficant code change that would compromize the stability
|
to do this without a significant code change that would compromise the stability
|
||||||
status of 3.23 branch. There exists a workaround for both if in the rare case
|
status of 3.23 branch. There exists a workaround for both if in the rare case
|
||||||
it happens to affect your application -- use @code{slave-skip-errors}.
|
it happens to affect your application -- use @code{slave-skip-errors}.
|
||||||
@end itemize
|
@end itemize
|
||||||
@@ -25473,7 +25473,7 @@ this join type is good.
|
|||||||
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{key} 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{key_len} contains the longest key part that was used.
|
||||||
The @code{ref} column will be NULL for this type.
|
The @code{ref} column will be @code{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
|
||||||
@@ -25764,8 +25764,9 @@ Constant condition removal (needed because of constant folding):
|
|||||||
Constant expressions used by indexes are evaluated only once.
|
Constant expressions used by indexes are evaluated only once.
|
||||||
@item
|
@item
|
||||||
@code{COUNT(*)} on a single table without a @code{WHERE} is retrieved
|
@code{COUNT(*)} on a single table without a @code{WHERE} is retrieved
|
||||||
directly from the table information for MyISAM and HEAP tables. This is
|
directly from the table information for @code{MyISAM} and @code{HEAP} tables.
|
||||||
also done for any @code{NOT NULL} expression when used with only one table.
|
This is also done for any @code{NOT NULL} expression when used with only one
|
||||||
|
table.
|
||||||
@item
|
@item
|
||||||
Early detection of invalid constant expressions. MySQL quickly
|
Early detection of invalid constant expressions. MySQL quickly
|
||||||
detects that some @code{SELECT} statements are impossible and returns no rows.
|
detects that some @code{SELECT} statements are impossible and returns no rows.
|
||||||
@@ -25876,9 +25877,9 @@ the scanning of the not used tables as soon as it has found the first match.
|
|||||||
SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
|
SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
In the case, assuming t1 is used before t2 (check with @code{EXPLAIN}), then
|
In the case, assuming @code{t1} is used before @code{t2} (check with
|
||||||
MySQL will stop reading from t2 (for that particular row in t1)
|
@code{EXPLAIN}), then MySQL will stop reading from @code{t2} (for that
|
||||||
when the first row in t2 is found.
|
particular row in @code{t1}) when the first row in @code{t2} is found.
|
||||||
|
|
||||||
|
|
||||||
@node LEFT JOIN optimisation, ORDER BY optimisation, DISTINCT optimisation, Query Speed
|
@node LEFT JOIN optimisation, ORDER BY optimisation, DISTINCT optimisation, Query Speed
|
||||||
@@ -25996,7 +25997,7 @@ do the @code{ORDER BY}:
|
|||||||
|
|
||||||
@item
|
@item
|
||||||
You are joining many tables and the columns you are doing an @code{ORDER
|
You are joining many tables and the columns you are doing an @code{ORDER
|
||||||
BY} on are not all from the first not-const table that is used to
|
BY} on are not all from the first not-@code{const} table that is used to
|
||||||
retrieve rows (This is the first table in the @code{EXPLAIN} output which
|
retrieve rows (This is the first table in the @code{EXPLAIN} output which
|
||||||
doesn't use a @code{const} row fetch method).
|
doesn't use a @code{const} row fetch method).
|
||||||
|
|
||||||
@@ -26021,7 +26022,7 @@ algorithm:
|
|||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item
|
@item
|
||||||
Read all rows according to key or by table scanning.
|
Read all rows according to key or by table scanning.
|
||||||
Rows that doesn't match the WHERE clause are skipped.
|
Rows that don't match the @code{WHERE} clause are skipped.
|
||||||
@item
|
@item
|
||||||
Store the sort-key in a buffer (of size @code{sort_buffer}).
|
Store the sort-key in a buffer (of size @code{sort_buffer}).
|
||||||
@item
|
@item
|
||||||
@@ -26196,11 +26197,11 @@ flush-tables}.
|
|||||||
|
|
||||||
Note that @code{LOAD DATA INFILE} also does the above optimisation if
|
Note that @code{LOAD DATA INFILE} also does the above optimisation if
|
||||||
you insert into an empty table; the main difference with the above
|
you insert into an empty table; the main difference with the above
|
||||||
procedure is that you can let myisamchk allocate much more temporary
|
procedure is that you can let @code{myisamchk} allocate much more temporary
|
||||||
memory for the index creation that you may want MySQL to allocate for
|
memory for the index creation that you may want MySQL to allocate for
|
||||||
every index recreation.
|
every index recreation.
|
||||||
|
|
||||||
Since @strong{MySQL 4.0} you can also use
|
Since MySQL 4.0 you can also use
|
||||||
@code{ALTER TABLE tbl_name DISABLE KEYS} instead of
|
@code{ALTER TABLE tbl_name DISABLE KEYS} instead of
|
||||||
@code{myisamchk --keys-used=0 -rq /path/to/db/tbl_name} and
|
@code{myisamchk --keys-used=0 -rq /path/to/db/tbl_name} and
|
||||||
@code{ALTER TABLE tbl_name ENABLE KEYS} instead of
|
@code{ALTER TABLE tbl_name ENABLE KEYS} instead of
|
||||||
@@ -26303,8 +26304,8 @@ Always check that all your queries really use the indexes you have created
|
|||||||
in the tables. In MySQL you can do this with the @code{EXPLAIN}
|
in the tables. In MySQL you can do this with the @code{EXPLAIN}
|
||||||
command. @xref{EXPLAIN, Explain, Explain, manual}.
|
command. @xref{EXPLAIN, Explain, Explain, manual}.
|
||||||
@item
|
@item
|
||||||
Try to avoid complex @code{SELECT} queries on MyISAM tables that are updated a
|
Try to avoid complex @code{SELECT} queries on @code{MyISAM} tables that are
|
||||||
lot. This is to avoid problems with table locking.
|
updated a lot. This is to avoid problems with table locking.
|
||||||
@item
|
@item
|
||||||
The new @code{MyISAM} tables can insert rows in a table without deleted
|
The new @code{MyISAM} tables can insert rows in a table without deleted
|
||||||
rows at the same time another table is reading from it. If this is important
|
rows at the same time another table is reading from it. If this is important
|
||||||
@@ -26312,7 +26313,7 @@ for you, you should consider methods where you don't have to delete rows
|
|||||||
or run @code{OPTIMIZE TABLE} after you have deleted a lot of rows.
|
or run @code{OPTIMIZE TABLE} after you have deleted a lot of rows.
|
||||||
@item
|
@item
|
||||||
Use @code{ALTER TABLE ... ORDER BY expr1,expr2...} if you mostly
|
Use @code{ALTER TABLE ... ORDER BY expr1,expr2...} if you mostly
|
||||||
retrieve rows in expr1,expr2... order. By using this option after big
|
retrieve rows in @code{expr1,expr2...} order. By using this option after big
|
||||||
changes to the table, you may be able to get higher performance.
|
changes to the table, you may be able to get higher performance.
|
||||||
@item
|
@item
|
||||||
In some cases it may make sense to introduce a column that is 'hashed'
|
In some cases it may make sense to introduce a column that is 'hashed'
|
||||||
@@ -26342,7 +26343,8 @@ introduce a new table and update the counter in real time. An update of
|
|||||||
type @code{UPDATE table set count=count+1 where index_column=constant}
|
type @code{UPDATE table set count=count+1 where index_column=constant}
|
||||||
is very fast!
|
is very fast!
|
||||||
|
|
||||||
This is really important when you use databases like MySQL that
|
This is really important when you use MySQL table types like MyISAM and
|
||||||
|
ISAM that
|
||||||
only have table locking (multiple readers / single writers). This will
|
only have table locking (multiple readers / single writers). This will
|
||||||
also give better performance with most databases, as the row locking
|
also give better performance with most databases, as the row locking
|
||||||
manager in this case will have less to do.
|
manager in this case will have less to do.
|
||||||
@@ -26580,7 +26582,7 @@ As updates on tables normally are considered to be more important than
|
|||||||
than statements that retrieve information from a table. This should
|
than statements that retrieve information from a table. This should
|
||||||
ensure that updates are not 'starved' because one issues a lot of heavy
|
ensure that updates are not 'starved' because one issues a lot of heavy
|
||||||
queries against a specific table. (You can change this by using
|
queries against a specific table. (You can change this by using
|
||||||
LOW_PRIORITY with the statement that does the update or
|
@code{LOW_PRIORITY} with the statement that does the update or
|
||||||
@code{HIGH_PRIORITY} with the @code{SELECT} statement.)
|
@code{HIGH_PRIORITY} with the @code{SELECT} statement.)
|
||||||
|
|
||||||
Starting from MySQL Version 3.23.7 one can use the
|
Starting from MySQL Version 3.23.7 one can use the
|
||||||
@@ -26625,7 +26627,7 @@ You can give a specific @code{INSERT}, @code{UPDATE}, or @code{DELETE}
|
|||||||
statement lower priority with the @code{LOW_PRIORITY} attribute.
|
statement lower priority with the @code{LOW_PRIORITY} attribute.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Start @code{mysqld} with a low value for @strong{max_write_lock_count} to give
|
Start @code{mysqld} with a low value for @code{max_write_lock_count} to give
|
||||||
@code{READ} locks after a certain number of @code{WRITE} locks.
|
@code{READ} locks after a certain number of @code{WRITE} locks.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
@@ -26750,7 +26752,7 @@ having it on all columns by default.
|
|||||||
If you don't have any variable-length columns (@code{VARCHAR},
|
If you don't have any variable-length columns (@code{VARCHAR},
|
||||||
@code{TEXT}, or @code{BLOB} columns), a fixed-size record format is
|
@code{TEXT}, or @code{BLOB} columns), a fixed-size record format is
|
||||||
used. This is faster but unfortunately may waste some space.
|
used. This is faster but unfortunately may waste some space.
|
||||||
@xref{MyISAM table formats}.
|
@xref{MyISAM table formats, , @code{MyISAM} table formats}.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
The primary index of a table should be as short as possible. This makes
|
The primary index of a table should be as short as possible. This makes
|
||||||
@@ -27079,9 +27081,9 @@ MySQL is multi-threaded, so it may have many queries on the same table
|
|||||||
simultaneously. To minimise the problem with two threads having
|
simultaneously. To minimise the problem with two threads having
|
||||||
different states on the same file, the table is opened independently by
|
different states on the same file, the table is opened independently by
|
||||||
each concurrent thread. This takes some memory but will normaly increase
|
each concurrent thread. This takes some memory but will normaly increase
|
||||||
performance. Wth ISAM and MyISAM tables this also requires one extra file
|
performance. Wth @code{ISAM} and @code{MyISAM} tables this also requires
|
||||||
descriptor for the datafile. With these table types the index file
|
one extra file descriptor for the datafile. With these table types the index
|
||||||
descriptor is shared between all threads.
|
file descriptor is shared between all threads.
|
||||||
|
|
||||||
You can read more about this topic in the next section. @xref{Table cache}.
|
You can read more about this topic in the next section. @xref{Table cache}.
|
||||||
|
|
||||||
@@ -27114,7 +27116,7 @@ Make sure that your operating system can handle the number of open file
|
|||||||
descriptors implied by the @code{table_cache} setting. If
|
descriptors implied by the @code{table_cache} setting. If
|
||||||
@code{table_cache} is set too high, MySQL may run out of file
|
@code{table_cache} is set too high, MySQL may run out of file
|
||||||
descriptors and refuse connections, fail to perform queries, and be very
|
descriptors and refuse connections, fail to perform queries, and be very
|
||||||
unreliable. You also have to take into account that the MyISAM table
|
unreliable. You also have to take into account that the @code{MyISAM} table
|
||||||
handler needs two file descriptors for each unique open table. You can
|
handler needs two file descriptors for each unique open table. You can
|
||||||
in increase the number of file descriptors available for MySQL with
|
in increase the number of file descriptors available for MySQL with
|
||||||
the @code{--open-files-limit=#} startup option. @xref{Not enough file
|
the @code{--open-files-limit=#} startup option. @xref{Not enough file
|
||||||
@@ -27139,7 +27141,7 @@ a thread is no longer using a table.
|
|||||||
When someone executes @code{mysqladmin refresh} or
|
When someone executes @code{mysqladmin refresh} or
|
||||||
@code{mysqladmin flush-tables}.
|
@code{mysqladmin flush-tables}.
|
||||||
@item
|
@item
|
||||||
When someone executes 'FLUSH TABLES'
|
When someone executes a @code{FLUSH TABLES} statement.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
When the table cache fills up, the server uses the following procedure
|
When the table cache fills up, the server uses the following procedure
|
||||||
@@ -27491,7 +27493,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 MySQL 1% slower.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Compiling on Linux-x86 using gcc without frame pointers
|
Compiling on Linux-x86 using gcc without frame pointers
|
||||||
@@ -27535,8 +27537,8 @@ a query is running, a copy of the current query string is also allocated.
|
|||||||
All threads share the same base memory.
|
All threads share the same base memory.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Only the compressed ISAM / MyISAM tables are memory mapped. This is
|
Only the compressed @code{ISAM} / @code{MyISAM} tables are memory mapped. This
|
||||||
because the 32-bit memory space of 4GB is not large enough for most
|
is because the 32-bit memory space of 4GB is not large enough for most
|
||||||
big tables. When systems with a 64-bit address space become more
|
big tables. When systems with a 64-bit address space become more
|
||||||
common we may add general support for memory mapping.
|
common we may add general support for memory mapping.
|
||||||
|
|
||||||
@@ -27551,20 +27553,20 @@ random-read buffer is allocated to avoid disk seeks.
|
|||||||
|
|
||||||
@item
|
@item
|
||||||
All joins are done in one pass, and most joins can be done without even
|
All joins are done in one pass, and most joins can be done without even
|
||||||
using a temporary table. Most temporary tables are memory-based (HEAP)
|
using a temporary table. Most temporary tables are memory-based (@code{HEAP})
|
||||||
tables. Temporary tables with a big record length (calculated as the
|
tables. Temporary tables with a big record length (calculated as the
|
||||||
sum of all column lengths) or that contain @code{BLOB} columns are
|
sum of all column lengths) or that contain @code{BLOB} columns are
|
||||||
stored on disk.
|
stored on disk.
|
||||||
|
|
||||||
One problem in MySQL versions before Version 3.23.2 is that if a HEAP table
|
One problem in MySQL versions before Version 3.23.2 is that if a @code{HEAP}
|
||||||
exceeds the size of @code{tmp_table_size}, you get the error @code{The
|
table exceeds the size of @code{tmp_table_size}, you get the error @code{The
|
||||||
table tbl_name is full}. In newer versions this is handled by
|
table tbl_name is full}. In newer versions this is handled by
|
||||||
automatically changing the in-memory (HEAP) table to a disk-based
|
automatically changing the in-memory (@code{HEAP}) table to a disk-based
|
||||||
(MyISAM) table as necessary. To work around this problem, you can
|
(@code{MyISAM}) table as necessary. To work around this problem, you can
|
||||||
increase the temporary table size by setting the @code{tmp_table_size}
|
increase the temporary table size by setting the @code{tmp_table_size}
|
||||||
option to @code{mysqld}, or by setting the SQL option
|
option to @code{mysqld}, or by setting the SQL option
|
||||||
@code{BIG_TABLES} in the client program. @xref{SET OPTION, ,
|
@code{BIG_TABLES} in the client program. @xref{SET OPTION, ,
|
||||||
@code{SET}}. In MySQL Version 3.20, the maximum size of the
|
@code{SET} Syntax}. In MySQL Version 3.20, the maximum size of the
|
||||||
temporary table was @code{record_buffer*16}, so if you are using this
|
temporary table was @code{record_buffer*16}, so if you are using this
|
||||||
version, you have to increase the value of @code{record_buffer}. You can
|
version, you have to increase the value of @code{record_buffer}. You can
|
||||||
also start @code{mysqld} with the @code{--big-tables} option to always
|
also start @code{mysqld} with the @code{--big-tables} option to always
|
||||||
@@ -33529,7 +33531,7 @@ The given @code{key_string} will be used to crypt @code{string_to_encrypt}.
|
|||||||
The return string will be a binary string where the first character
|
The return string will be a binary string where the first character
|
||||||
will be @code{CHAR(128 | key_number)}.
|
will be @code{CHAR(128 | key_number)}.
|
||||||
|
|
||||||
The 128 is added to make it easier to recognize an encrypted key.
|
The 128 is added to make it easier to recognise an encrypted key.
|
||||||
If you use a string key, @code{key_number} will be 127.
|
If you use a string key, @code{key_number} will be 127.
|
||||||
|
|
||||||
On error, this function returns @code{NULL}.
|
On error, this function returns @code{NULL}.
|
||||||
@@ -39798,7 +39800,7 @@ Use less locking: if you can afford a @code{SELECT} to return
|
|||||||
data from an old snapshot, do not add the clause
|
data from an old snapshot, do not add the clause
|
||||||
@code{FOR UPDATE} or @code{LOCK IN SHARE MODE} to it.
|
@code{FOR UPDATE} or @code{LOCK IN SHARE MODE} to it.
|
||||||
@item
|
@item
|
||||||
If nothing helps, serialize your transactions with table level
|
If nothing helps, serialise your transactions with table level
|
||||||
locks: @code{LOCK TABLES t1 WRITE, t2 READ, ... ;
|
locks: @code{LOCK TABLES t1 WRITE, t2 READ, ... ;
|
||||||
[do something with tables t1 and t2 here]; UNLOCK TABLES.}
|
[do something with tables t1 and t2 here]; UNLOCK TABLES.}
|
||||||
Table level locks make you transactions to queue nicely,
|
Table level locks make you transactions to queue nicely,
|
||||||
|
Reference in New Issue
Block a user