mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
Merge arjen@work.mysql.com:/home/bk/mysql-4.0
into co3064164-a.rochd1.qld.optushome.com.au:c:/home/mysql-4.0 Docs/manual.texi: Auto merged BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
This commit is contained in:
commit
eac41143af
3 changed files with 78 additions and 142 deletions
|
@ -420,3 +420,4 @@ vio/test-ssl
|
||||||
vio/test-sslclient
|
vio/test-sslclient
|
||||||
vio/test-sslserver
|
vio/test-sslserver
|
||||||
vio/viotest-ssl
|
vio/viotest-ssl
|
||||||
|
Docs/#manual.texi#
|
||||||
|
|
|
@ -31,3 +31,5 @@ tonu@hundin.mysql.fi
|
||||||
tonu@volk.internalnet
|
tonu@volk.internalnet
|
||||||
tonu@x153.internalnet
|
tonu@x153.internalnet
|
||||||
tonu@x3.internalnet
|
tonu@x3.internalnet
|
||||||
|
Administrator@co3064164-a.
|
||||||
|
Administrator@co3064164-a.rochd1.qld.optushome.com.au
|
||||||
|
|
217
Docs/manual.texi
217
Docs/manual.texi
|
@ -121,7 +121,6 @@ distribution for that version.
|
||||||
* Porting:: Comments on porting to other systems
|
* Porting:: Comments on porting to other systems
|
||||||
* Environment variables:: MySQL environment variables
|
* Environment variables:: MySQL environment variables
|
||||||
* Regexp:: Description of MySQL regular expression syntax
|
* Regexp:: Description of MySQL regular expression syntax
|
||||||
* Unireg:: What is Unireg?
|
|
||||||
* GPL license:: GNU General Public License
|
* GPL license:: GNU General Public License
|
||||||
* LGPL license:: GNU Library General Public License
|
* LGPL license:: GNU Library General Public License
|
||||||
* Placeholder:: Pieces of the manual in transit
|
* Placeholder:: Pieces of the manual in transit
|
||||||
|
@ -363,16 +362,16 @@ MySQL. @xref{What-is}.
|
||||||
* Contact information:: Contact information
|
* Contact information:: Contact information
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
MySQL AB has been profitable providing MySQL from the start.
|
MySQL AB has been profitable from the start with providing MySQL. Though
|
||||||
We don't get any outside funding, but have earned all our money ourselves.
|
initially working without any outside funding, in October MySQL AB has
|
||||||
|
received seed round financing from ABN Amro / Alfred Berg Industrifinans,
|
||||||
|
Holtron, Scope Capital, Servisen Holding and a number of business angels.
|
||||||
|
|
||||||
We are searching for partners that would like to support our development
|
MySQL AB currently has 30+ employees worldwide (situation in October 2001).
|
||||||
of MySQL so that we can accelerate the pace of development. If you
|
|
||||||
are interested in doing this, please e-mail @email{partner@@mysql.com}!
|
|
||||||
|
|
||||||
MySQL AB currently has over twenty people
|
We are always on the look-out for new partners who would like to support us,
|
||||||
(@uref{http://www.mysql.com/development/team.html})
|
so that we can further accelerate the pace of MySQL development. If you are
|
||||||
on its payroll and is growing rapidly.
|
interested in doing this, please e-mail @email{partner@@mysql.com}!
|
||||||
|
|
||||||
|
|
||||||
Our main sources of income are:
|
Our main sources of income are:
|
||||||
|
@ -850,12 +849,14 @@ some issues and to answer some of the more important questions that seem to
|
||||||
concern many people. This section has been put together from information
|
concern many people. This section has been put together from information
|
||||||
gathered from the mailing list (which is very active in reporting bugs).
|
gathered from the mailing list (which is very active in reporting bugs).
|
||||||
|
|
||||||
At TcX, MySQL has worked without any problems in our projects since
|
At TcX, the predecessor of MySQL AB, MySQL has worked without any problems in
|
||||||
mid-1996. When MySQL was released to a wider public, we noticed that
|
projects since mid-1996. Original code stems back from the early 80s,
|
||||||
there were some pieces of ``untested code'' that were quickly found by the
|
providing a table code base, and the ISAM table format remains backwards
|
||||||
new users who made queries in a manner different than our own. Each new
|
compatible. When MySQL was released to a wider public, we noticed that there
|
||||||
release has had fewer portability problems than the previous one (even though
|
were some pieces of ``untested code'' that were quickly found by the new users
|
||||||
each has had many new features).
|
who made queries in a manner different than our own. Each new release has had
|
||||||
|
fewer portability problems than the previous one (even though each has had
|
||||||
|
many new features).
|
||||||
|
|
||||||
Each release of MySQL has been usable, and there have been problems
|
Each release of MySQL has been usable, and there have been problems
|
||||||
only when users start to use code from the ``gray zones.'' Naturally, outside
|
only when users start to use code from the ``gray zones.'' Naturally, outside
|
||||||
|
@ -4889,7 +4890,7 @@ Table locking, as used by the non-transactional @code{MyISAM} tables, is
|
||||||
in many cases faster than page locks, row locks or versioning. The
|
in many cases faster than page locks, row locks or versioning. The
|
||||||
drawback however is that if one doesn't take into account how table
|
drawback however is that if one doesn't take into account how table
|
||||||
locks work, a single long-running query can block a table for updates
|
locks work, a single long-running query can block a table for updates
|
||||||
for a long time. This can usable be avoided when designing the
|
for a long time. This can usually be avoided when designing the
|
||||||
application. If not, one can always switch the trouble table to use one
|
application. If not, one can always switch the trouble table to use one
|
||||||
of the transactional table types. @xref{Table locking}.
|
of the transactional table types. @xref{Table locking}.
|
||||||
|
|
||||||
|
@ -4923,7 +4924,7 @@ don't know the PostgreSQL roadmap.
|
||||||
@item Unions @tab 4.0
|
@item Unions @tab 4.0
|
||||||
@item Full join @tab 4.0 or 4.1
|
@item Full join @tab 4.0 or 4.1
|
||||||
@item Triggers @tab 4.1
|
@item Triggers @tab 4.1
|
||||||
@item Constrainst @tab 4.1
|
@item Constraints @tab 4.1
|
||||||
@item Cursors @tab 4.1 or 4.2
|
@item Cursors @tab 4.1 or 4.2
|
||||||
@item Extensible index types like R-trees @tab R-trees are planned for 4.2
|
@item Extensible index types like R-trees @tab R-trees are planned for 4.2
|
||||||
@item Inherited tables @tab Not planned
|
@item Inherited tables @tab Not planned
|
||||||
|
@ -24218,7 +24219,7 @@ The most common bottlenecks are:
|
||||||
@item Disk seeks.
|
@item Disk seeks.
|
||||||
It takes time for the disk to find a piece of data. With modern disks in
|
It takes time for the disk to find a piece of data. With modern disks in
|
||||||
1999, the mean time for this is usually lower than 10ms, so we can in
|
1999, the mean time for this is usually lower than 10ms, so we can in
|
||||||
theory do about 1000 seeks a second. This time improves slowly with new
|
theory do about 100 seeks a second. This time improves slowly with new
|
||||||
disks and is very hard to optimize for a single table. The way to
|
disks and is very hard to optimize for a single table. The way to
|
||||||
optimize this is to spread the data on more than one disk.
|
optimize this is to spread the data on more than one disk.
|
||||||
|
|
||||||
|
@ -27223,7 +27224,6 @@ Things that are not yet supported:
|
||||||
* Data Definition:: Data Definition: @code{CREATE}, @code{DROP}, @code{ALTER}
|
* Data Definition:: Data Definition: @code{CREATE}, @code{DROP}, @code{ALTER}
|
||||||
* Basic User Commands:: Basic MySQL User Utility Commands
|
* Basic User Commands:: Basic MySQL User Utility Commands
|
||||||
* Transactional Commands:: MySQL Transactional and Locking Commands
|
* Transactional Commands:: MySQL Transactional and Locking Commands
|
||||||
* HANDLER::
|
|
||||||
* Fulltext Search:: MySQL Full-text Search
|
* Fulltext Search:: MySQL Full-text Search
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
@ -32042,7 +32042,7 @@ facilitate replication testing.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* SELECT:: @code{SELECT} Syntax
|
* SELECT:: @code{SELECT} Syntax
|
||||||
* UNION::
|
* HANDLER::
|
||||||
* INSERT:: @code{INSERT} Syntax
|
* INSERT:: @code{INSERT} Syntax
|
||||||
* INSERT DELAYED:: @code{INSERT DELAYED} syntax
|
* INSERT DELAYED:: @code{INSERT DELAYED} syntax
|
||||||
* UPDATE:: @code{UPDATE} Syntax
|
* UPDATE:: @code{UPDATE} Syntax
|
||||||
|
@ -32052,7 +32052,7 @@ facilitate replication testing.
|
||||||
* LOAD DATA:: @code{LOAD DATA INFILE} Syntax
|
* LOAD DATA:: @code{LOAD DATA INFILE} Syntax
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node SELECT, UNION, Data Manipulation, Data Manipulation
|
@node SELECT, HANDLER, Data Manipulation, Data Manipulation
|
||||||
@subsection @code{SELECT} Syntax
|
@subsection @code{SELECT} Syntax
|
||||||
|
|
||||||
@findex SELECT
|
@findex SELECT
|
||||||
|
@ -32345,9 +32345,10 @@ the examined rows will be write locked.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* JOIN:: @code{JOIN} Syntax
|
* JOIN:: @code{JOIN} Syntax
|
||||||
|
* UNION::
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node JOIN, , SELECT, SELECT
|
@node JOIN, UNION, SELECT, SELECT
|
||||||
@subsubsection @code{JOIN} Syntax
|
@subsubsection @code{JOIN} Syntax
|
||||||
|
|
||||||
@findex JOIN
|
@findex JOIN
|
||||||
|
@ -32497,8 +32498,8 @@ mysql> select * from table1 IGNORE INDEX (key3) WHERE key1=1 and key2=2 AND
|
||||||
@xref{LEFT JOIN optimization, , @code{LEFT JOIN} optimization}.
|
@xref{LEFT JOIN optimization, , @code{LEFT JOIN} optimization}.
|
||||||
|
|
||||||
|
|
||||||
@node UNION, INSERT, SELECT, Data Manipulation
|
@node UNION, , JOIN, SELECT
|
||||||
@subsection @code{UNION} Syntax
|
@subsubsection @code{UNION} Syntax
|
||||||
|
|
||||||
@findex UNION
|
@findex UNION
|
||||||
|
|
||||||
|
@ -32530,7 +32531,52 @@ returned rows will be unique, like if you had done a @code{DISTINCT} for
|
||||||
the total result set. If you specify @code{ALL}, then you will get all
|
the total result set. If you specify @code{ALL}, then you will get all
|
||||||
matching rows from all the used @code{SELECT} statements.
|
matching rows from all the used @code{SELECT} statements.
|
||||||
|
|
||||||
@node INSERT, INSERT DELAYED, UNION, Data Manipulation
|
|
||||||
|
@findex HANDLER
|
||||||
|
@node HANDLER, INSERT, SELECT, Data Manipulation
|
||||||
|
@subsection @code{HANDLER} Syntax
|
||||||
|
|
||||||
|
@example
|
||||||
|
HANDLER table OPEN [ AS alias ]
|
||||||
|
HANDLER table READ index @{ = | >= | <= | < @} (value1, value2, ... ) [ WHERE ... ] [LIMIT ... ]
|
||||||
|
HANDLER table READ index @{ FIRST | NEXT | PREV | LAST @} [ WHERE ... ] [LIMIT ... ]
|
||||||
|
HANDLER table READ @{ FIRST | NEXT @} [ WHERE ... ] [LIMIT ... ]
|
||||||
|
HANDLER table CLOSE
|
||||||
|
@end example
|
||||||
|
|
||||||
|
The @code{HANDLER} statement provides direct access to MySQL table
|
||||||
|
interface, bypassing SQL optimizer. Thus, it is faster then SELECT.
|
||||||
|
|
||||||
|
The first form of @code{HANDLER} statement opens a table, making
|
||||||
|
in accessible via the following @code{HANDLER ... READ} routines.
|
||||||
|
This table object is not shared by other threads an will not be closed
|
||||||
|
until the thread calls @code{HANDLER table_name CLOSE} or the thread dies.
|
||||||
|
|
||||||
|
The second form fetches one (or, specified by @code{LIMIT} clause) row
|
||||||
|
where the index specified complies to the condition and @code{WHERE}
|
||||||
|
condition is met. If the index consists of several parts (spans over
|
||||||
|
several columns) the values are specified in comma-separated list,
|
||||||
|
providing values only for few first columns is possible.
|
||||||
|
|
||||||
|
The third form fetches one (or, specified by @code{LIMIT} clause) row
|
||||||
|
from the table in index order, matching @code{WHERE} condition.
|
||||||
|
|
||||||
|
The fourth form (without index specification) fetches one (or, specified
|
||||||
|
by @code{LIMIT} clause) row from the table in natural row order (as stored
|
||||||
|
in data file) matching @code{WHERE} condition. It is faster than
|
||||||
|
@code{HANDLER table READ index} when full table scan is desired.
|
||||||
|
|
||||||
|
The last form closes the table, opened with @code{HANDLER ... OPEN}.
|
||||||
|
|
||||||
|
@code{HANDLER} is somewhat low-level statement, for example it does not
|
||||||
|
provide consistency. That is @code{HANDLER ... OPEN} does @strong{NOT}
|
||||||
|
takes a snapshot of the table, and does @strong{NOT} locks the table. The
|
||||||
|
above means, that after @code{HANDLER ... OPEN} table data can be
|
||||||
|
modified (by this or other thread) and these modifications may appear only
|
||||||
|
partially in @code{HANDLER ... NEXT} or @code{HANDLER ... PREV} scans.
|
||||||
|
|
||||||
|
|
||||||
|
@node INSERT, INSERT DELAYED, HANDLER, Data Manipulation
|
||||||
@subsection @code{INSERT} Syntax
|
@subsection @code{INSERT} Syntax
|
||||||
|
|
||||||
@findex INSERT
|
@findex INSERT
|
||||||
|
@ -34672,7 +34718,7 @@ The @code{SHOW} statement provides similar information.
|
||||||
@xref{SHOW, , @code{SHOW}}.
|
@xref{SHOW, , @code{SHOW}}.
|
||||||
|
|
||||||
|
|
||||||
@node Transactional Commands, HANDLER, Basic User Commands, Reference
|
@node Transactional Commands, Fulltext Search, Basic User Commands, Reference
|
||||||
@section MySQL Transactional and Locking Commands
|
@section MySQL Transactional and Locking Commands
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
|
@ -34905,50 +34951,7 @@ future transactions.
|
||||||
You can set the default isolation level for @code{mysqld} with
|
You can set the default isolation level for @code{mysqld} with
|
||||||
@code{--transaction-isolation=...}. @xref{Command-line options}.
|
@code{--transaction-isolation=...}. @xref{Command-line options}.
|
||||||
|
|
||||||
@findex HANDLER
|
@node Fulltext Search, , Transactional Commands, Reference
|
||||||
@node HANDLER, Fulltext Search, Transactional Commands, Reference
|
|
||||||
@section @code{HANDLER} Syntax
|
|
||||||
|
|
||||||
@example
|
|
||||||
HANDLER table OPEN [ AS alias ]
|
|
||||||
HANDLER table READ index @{ = | >= | <= | < @} (value1, value2, ... ) [ WHERE ... ] [LIMIT ... ]
|
|
||||||
HANDLER table READ index @{ FIRST | NEXT | PREV | LAST @} [ WHERE ... ] [LIMIT ... ]
|
|
||||||
HANDLER table READ @{ FIRST | NEXT @} [ WHERE ... ] [LIMIT ... ]
|
|
||||||
HANDLER table CLOSE
|
|
||||||
@end example
|
|
||||||
|
|
||||||
The @code{HANDLER} statement provides direct access to MySQL table
|
|
||||||
interface, bypassing SQL optimizer. Thus, it is faster then SELECT.
|
|
||||||
|
|
||||||
The first form of @code{HANDLER} statement opens a table, making
|
|
||||||
in accessible via the following @code{HANDLER ... READ} routines.
|
|
||||||
This table object is not shared by other threads an will not be closed
|
|
||||||
until the thread calls @code{HANDLER table_name CLOSE} or the thread dies.
|
|
||||||
|
|
||||||
The second form fetches one (or, specified by @code{LIMIT} clause) row
|
|
||||||
where the index specified complies to the condition and @code{WHERE}
|
|
||||||
condition is met. If the index consists of several parts (spans over
|
|
||||||
several columns) the values are specified in comma-separated list,
|
|
||||||
providing values only for few first columns is possible.
|
|
||||||
|
|
||||||
The third form fetches one (or, specified by @code{LIMIT} clause) row
|
|
||||||
from the table in index order, matching @code{WHERE} condition.
|
|
||||||
|
|
||||||
The fourth form (without index specification) fetches one (or, specified
|
|
||||||
by @code{LIMIT} clause) row from the table in natural row order (as stored
|
|
||||||
in data file) matching @code{WHERE} condition. It is faster than
|
|
||||||
@code{HANDLER table READ index} when full table scan is desired.
|
|
||||||
|
|
||||||
The last form closes the table, opened with @code{HANDLER ... OPEN}.
|
|
||||||
|
|
||||||
@code{HANDLER} is somewhat low-level statement, for example it does not
|
|
||||||
provide consistency. That is @code{HANDLER ... OPEN} does @strong{NOT}
|
|
||||||
takes a snapshot of the table, and does @strong{NOT} locks the table. The
|
|
||||||
above means, that after @code{HANDLER ... OPEN} table data can be
|
|
||||||
modified (by this or other thread) and these modifications may appear only
|
|
||||||
partially in @code{HANDLER ... NEXT} or @code{HANDLER ... PREV} scans.
|
|
||||||
|
|
||||||
@node Fulltext Search, , HANDLER, Reference
|
|
||||||
@section MySQL Full-text Search
|
@section MySQL Full-text Search
|
||||||
|
|
||||||
@cindex searching, full-text
|
@cindex searching, full-text
|
||||||
|
@ -53949,7 +53952,7 @@ variables to modify the behavior of MySQL. @xref{Option files}.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Regexp, Unireg, Environment variables, Top
|
@node Regexp, GPL license, Environment variables, Top
|
||||||
@appendix Description of MySQL regular expression syntax
|
@appendix Description of MySQL regular expression syntax
|
||||||
|
|
||||||
@cindex regex
|
@cindex regex
|
||||||
|
@ -54136,77 +54139,7 @@ mysql> select "weeknights" REGEXP "^(wee|week)(knights|nights)$"; -> 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Unireg, GPL license, Regexp, Top
|
@node GPL license, LGPL license, Regexp, Top
|
||||||
@appendix What is Unireg?
|
|
||||||
|
|
||||||
@cindex Unireg, described
|
|
||||||
@cindex interface builder
|
|
||||||
|
|
||||||
Unireg is our tty interface builder, but it uses a low-level connection
|
|
||||||
to our ISAM (which is used by MySQL) and because of this it is
|
|
||||||
very quick. It has existed since 1979 (on Unix in C since ~1986).
|
|
||||||
|
|
||||||
Unireg has the following components:
|
|
||||||
|
|
||||||
@itemize @bullet
|
|
||||||
@item
|
|
||||||
One table viewer with updates/browsing.
|
|
||||||
@item
|
|
||||||
Multi table viewer (with one scrolling region).
|
|
||||||
@item
|
|
||||||
Table creator. (With lots of column tags you can't create with MySQL)
|
|
||||||
This is WYSIWYG (for a tty). You design a screen and Unireg prompts for
|
|
||||||
the column specification.
|
|
||||||
@item
|
|
||||||
Report generator.
|
|
||||||
@item
|
|
||||||
A lot of utilities (quick import/export of tables to/from text files,
|
|
||||||
analysis of table contents...).
|
|
||||||
@item
|
|
||||||
Powerful multi-table updates (which we use a lot) with a BASIC-like
|
|
||||||
language with LOTS of functions.
|
|
||||||
@item
|
|
||||||
Dynamic languages (at present in Swedish and Finnish). If somebody wants
|
|
||||||
an English version there are a few files that would have to be translated.
|
|
||||||
@item
|
|
||||||
The ability to run updates interactively or in a batch.
|
|
||||||
@item
|
|
||||||
Emacs-like key definitions with keyboard macros.
|
|
||||||
@item
|
|
||||||
All this in a binary of 800K.
|
|
||||||
@item
|
|
||||||
The @code{convform} utility. Converts @file{.frm} and text files between
|
|
||||||
different character sets.
|
|
||||||
@item
|
|
||||||
The @code{myisampack} utility. Packs an ISAM table (makes it 50-80%
|
|
||||||
smaller). The table can be read by MySQL like an ordinary
|
|
||||||
table. Only one record has to be decompressed per access. Cannot handle
|
|
||||||
@code{BLOB} or @code{TEXT} columns or updates (yet).
|
|
||||||
@end itemize
|
|
||||||
|
|
||||||
We update most of our production databases with the Unireg interface and
|
|
||||||
serve web pages through MySQL (and in some extreme cases the Unireg
|
|
||||||
report generator).
|
|
||||||
|
|
||||||
Unireg takes about 3M of disk space and works on at least the following
|
|
||||||
platforms: SunOS 4.x, Solaris, Linux, HP-UX, ICL Unix, DNIX, SCO and
|
|
||||||
MS-DOS.
|
|
||||||
|
|
||||||
Unireg is currently only available in Swedish and Finnish.
|
|
||||||
|
|
||||||
The price tag for Unireg is 10,000 Swedish kr (about $1500 US), but this
|
|
||||||
includes support. Unireg is distributed as a binary. (But all the ISAM
|
|
||||||
sources can be found in MySQL.) Usually we compile the binary for the
|
|
||||||
customer at their site.
|
|
||||||
|
|
||||||
All new development is concentrated to MySQL.
|
|
||||||
|
|
||||||
@page
|
|
||||||
@c This node name is special
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node GPL license, LGPL license, Unireg, Top
|
|
||||||
@appendix GNU GENERAL PUBLIC LICENSE
|
@appendix GNU GENERAL PUBLIC LICENSE
|
||||||
|
|
||||||
@cindex GPL, General Public License
|
@cindex GPL, General Public License
|
||||||
|
|
Loading…
Add table
Reference in a new issue