Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
b99a376c
Commit
b99a376c
authored
23 years ago
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added documentation about GEMINI tables
parent
1512a50e
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
146 additions
and
34 deletions
+146
-34
Docs/manual.texi
Docs/manual.texi
+146
-34
No files found.
Docs/manual.texi
View file @
b99a376c
...
@@ -487,7 +487,8 @@ MySQL Table Types
...
@@ -487,7 +487,8 @@ MySQL Table Types
* ISAM:: ISAM tables
* ISAM:: ISAM tables
* HEAP:: HEAP tables
* HEAP:: HEAP tables
* BDB:: BDB or Berkeley_db tables
* BDB:: BDB or Berkeley_db tables
* INNOBASE::
* GEMINI:: GEMINI tables
* INNOBASE:: INNOBASE tables
MyISAM Tables
MyISAM Tables
...
@@ -509,11 +510,18 @@ BDB or Berkeley_db Tables
...
@@ -509,11 +510,18 @@ BDB or Berkeley_db Tables
* BDB TODO::
* BDB TODO::
* BDB errors::
* BDB errors::
GEMINI tables
* GEMINI overview::
* GEMINI start::
* GEMINI features::
* GEMINI TODO::
INNOBASE Tables
INNOBASE Tables
* INNOBASE overview::
* INNOBASE overview::
* I
nnobase startup options
::
* I
NNOBASE start
::
* Using I
nnobase
tables::
* Using I
NNOBASE
tables::
* INNOBASE restrictions::
* INNOBASE restrictions::
MySQL Tutorial
MySQL Tutorial
...
@@ -582,7 +590,7 @@ Replication in MySQL
...
@@ -582,7 +590,7 @@ Replication in MySQL
* Replication Options:: Replication Options in my.cnf
* Replication Options:: Replication Options in my.cnf
* Replication SQL:: SQL Commands related to replication
* Replication SQL:: SQL Commands related to replication
* Replication FAQ:: Frequently Asked Questions about replication
* Replication FAQ:: Frequently Asked Questions about replication
* Troubleshooting Replication:: Troubleshooting Replication
. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication.
* Troubleshooting Replication:: Troubleshooting Replication
Getting Maximum Performance from MySQL
Getting Maximum Performance from MySQL
...
@@ -4198,7 +4206,7 @@ Please report bad or out-of-date mirrors to @email{webmaster@@mysql.com}.
...
@@ -4198,7 +4206,7 @@ Please report bad or out-of-date mirrors to @email{webmaster@@mysql.com}.
@c @uref{http://mysql.tradenet.ee, WWW}
@c @uref{http://mysql.tradenet.ee, WWW}
@item
@item
@c EMAIL: tonu@spam
m
.ee (Tõnu Samuel)
@c EMAIL: tonu@spam.ee (Tõnu Samuel)
@image{Flags/estonia} Estonia [OKinteractive] @
@image{Flags/estonia} Estonia [OKinteractive] @
@uref{http://mysql.mirror.ok.ee, WWW}
@uref{http://mysql.mirror.ok.ee, WWW}
...
@@ -9527,6 +9535,12 @@ problems. @xref{Windows}.
...
@@ -9527,6 +9535,12 @@ problems. @xref{Windows}.
If you are using BDB (Berkeley DB) tables, you should familiarize
If you are using BDB (Berkeley DB) tables, you should familiarize
yourself with the different BDB specific startup options. @xref{BDB start}.
yourself with the different BDB specific startup options. @xref{BDB start}.
If you are using Gemini tables, refer to the Gemini-specific startup options.
@xref{GEMINI start}.
If you are using Innobase tables, refer to the Innobase-specific startup
options. @xref{INNOBASE start}.
@node Automatic start, Command-line options, Starting server, Post-installation
@node Automatic start, Command-line options, Starting server, Post-installation
@subsection Starting and Stopping MySQL Automatically
@subsection Starting and Stopping MySQL Automatically
@cindex starting, the server automatically
@cindex starting, the server automatically
...
@@ -10911,9 +10925,10 @@ Many of our users who have speed foremost in their minds are not at all
...
@@ -10911,9 +10925,10 @@ Many of our users who have speed foremost in their minds are not at all
concerned about transactions. For them transactions are not an
concerned about transactions. For them transactions are not an
issue. For those of our users who are concerned with or have wondered
issue. For those of our users who are concerned with or have wondered
about transactions vis-a-vis @strong{MySQL}, there is a ``@strong{MySQL}
about transactions vis-a-vis @strong{MySQL}, there is a ``@strong{MySQL}
way'' as we have outlined above. For those where safety is more important
way'' as we have outlined above. For those where safety is more
than speed, we recommend them to use the @code{BDB} tables for all their
important than speed, we recommend them to use the @code{BDB},
critical data. @xref{BDB}.
@code{GEMINI} or @code{INNOBASE} tables for all their critical
data. @xref{Table types}.
One final note: We are currently working on a safe replication schema
One final note: We are currently working on a safe replication schema
that we believe to be better than any commercial replication system we
that we believe to be better than any commercial replication system we
...
@@ -11139,12 +11154,14 @@ Entry level SQL92. ODBC levels 0-2.
...
@@ -11139,12 +11154,14 @@ Entry level SQL92. ODBC levels 0-2.
@cindex tables, updating
@cindex tables, updating
@cindex updating, tables
@cindex updating, tables
@cindex @code{BDB} tables
@cindex @code{BDB} tables
@cindex @code{GEMINI} tables
@cindex @code{INNOBASE} tables
The following mostly applies only for @code{ISAM}, @code{MyISAM}, and
The following mostly applies only for @code{ISAM}, @code{MyISAM}, and
@code{HEAP} tables. If you only use transaction-safe tables (@code{BDB}
@code{HEAP} tables. If you only use transaction-safe tables (@code{BDB},
tables) in an a update, you can do @code{COMMIT} and @code{ROLLBACK} also
@code{GEMINI} or @code{INNOBASE} tables) in an a update, you can do
with @strong{MySQL}. @xref{COMMIT}.
@code{COMMIT} and @code{ROLLBACK} also with @strong{MySQL}.
@xref{COMMIT}.
The problem with handling @code{COMMIT}-@code{ROLLBACK} efficiently with
The problem with handling @code{COMMIT}-@code{ROLLBACK} efficiently with
the above table types would require a completely different table layout
the above table types would require a completely different table layout
...
@@ -18339,6 +18356,7 @@ The different table types are:
...
@@ -18339,6 +18356,7 @@ The different table types are:
@multitable @columnfractions .20 .80
@multitable @columnfractions .20 .80
@item BDB or Berkeley_db @tab Transaction-safe tables with page locking. @xref{BDB}.
@item BDB or Berkeley_db @tab Transaction-safe tables with page locking. @xref{BDB}.
@item GEMINI @tab Transaction-safe tables with row-level locking @xref{GEMINI}.
@item HEAP @tab The data for this table is only stored in memory. @xref{HEAP}.
@item HEAP @tab The data for this table is only stored in memory. @xref{HEAP}.
@item ISAM @tab The original table handler. @xref{ISAM}.
@item ISAM @tab The original table handler. @xref{ISAM}.
@item INNOBASE @tab Transaction-safe tables with row locking. @xref{INNOBASE}.
@item INNOBASE @tab Transaction-safe tables with row locking. @xref{INNOBASE}.
...
@@ -22608,6 +22626,7 @@ used them.
...
@@ -22608,6 +22626,7 @@ used them.
@cindex table types, choosing
@cindex table types, choosing
@cindex @code{BDB} table type
@cindex @code{BDB} table type
@cindex @code{Berkeley_db} table type
@cindex @code{Berkeley_db} table type
@cindex @code{GEMINI} table type
@cindex @code{HEAP} table type
@cindex @code{HEAP} table type
@cindex @code{ISAM} table type
@cindex @code{ISAM} table type
@cindex @code{INNOBASE} table type
@cindex @code{INNOBASE} table type
...
@@ -22678,7 +22697,8 @@ of both worlds.
...
@@ -22678,7 +22697,8 @@ of both worlds.
* ISAM:: ISAM tables
* ISAM:: ISAM tables
* HEAP:: HEAP tables
* HEAP:: HEAP tables
* BDB:: BDB or Berkeley_db tables
* BDB:: BDB or Berkeley_db tables
* INNOBASE::
* GEMINI:: GEMINI tables
* INNOBASE:: INNOBASE tables
@end menu
@end menu
@node MyISAM, MERGE, Table types, Table types
@node MyISAM, MERGE, Table types, Table types
...
@@ -23295,7 +23315,7 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2)
...
@@ -23295,7 +23315,7 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2)
@cindex tables, @code{BDB}
@cindex tables, @code{BDB}
@cindex tables, @code{Berkeley DB}
@cindex tables, @code{Berkeley DB}
@node BDB,
INNOBASE
, HEAP, Table types
@node BDB,
GEMINI
, HEAP, Table types
@section BDB or Berkeley_db Tables
@section BDB or Berkeley_db Tables
@menu
@menu
...
@@ -23310,9 +23330,8 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2)
...
@@ -23310,9 +23330,8 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2)
@node BDB overview, BDB install, BDB, BDB
@node BDB overview, BDB install, BDB, BDB
@subsection Overview over BDB tables
@subsection Overview over BDB tables
BDB tables are included in the @strong{MySQL} source distribution
BDB is included in the @strong{MySQL} source distribution starting
starting from 3.23.34 and will be activated in the @strong{MySQL}-max
from 3.23.34 and will be activated in the @strong{MySQL}-max binary.
binary.
Berkeley DB (@uref{http://www.sleepycat.com}) has provided
Berkeley DB (@uref{http://www.sleepycat.com}) has provided
@strong{MySQL} with a transaction-safe table handler. This will survive
@strong{MySQL} with a transaction-safe table handler. This will survive
...
@@ -23509,22 +23528,103 @@ This is not fatal but we don't recommend that you delete tables if you are
...
@@ -23509,22 +23528,103 @@ This is not fatal but we don't recommend that you delete tables if you are
not in @code{auto_commit} mode, until this problem is fixed (the fix is
not in @code{auto_commit} mode, until this problem is fixed (the fix is
not trivial).
not trivial).
@node INNOBASE, , BDB, Table types
@cindex tables, @code{GEMINI}
@node GEMINI, INNOBASE, BDB, Table types
@section GEMINI Tables
@menu
* GEMINI overview::
* GEMINI start::
* GEMINI features::
* GEMINI TODO::
@end menu
@node GEMINI overview, GEMINI start, GEMINI, GEMINI
@subsection Overview of GEMINI tables
The @code{GEMINI} table type is developed and supported by NuSphere Corporation
(@uref{http://www.nusphere.com}). It features row-level locking, transaction
support (@code{COMMIT} and @code{ROLLBACK}), and automatic crash recovery.
@code{GEMINI} tables will be included in the @strong{MySQL} 4.0 source
distribution.
@node GEMINI start, GEMINI features, GEMINI overview, GEMINI
@subsection GEMINI startup options
If you are running with @code{AUTOCOMMIT=0} then your changes in @code{GEMINI}
tables will not be updated until you execute @code{COMMIT}. Instead of commit
you can execute @code{ROLLBACK} to forget your changes. @xref{COMMIT}.
If you are running with @code{AUTOCOMMIT=1} (the default), your changes
will be committed immediately. You can start an extended transaction with
the @code{BEGIN WORK} SQL command, after which your changes will not be
committed until you execute @code{COMMIT} (or decide to @code{ROLLBACK}
the changes).
The following options to @code{mysqld} can be used to change the behavior of
GEMINI tables:
@multitable @columnfractions .30 .70
@item @strong{Option} @tab @strong{Meaning}
@item @code{--gemini-full-recovery} @tab Default.
@item @code{--gemini-no-recovery} @tab Turn off recovery logging. Not recommended.
@item @code{--gemini-lazy-commit} @tab Relaxes the flush log at commit rule.
@item @code{--gemini-unbuffered-io} @tab All database writes bypass OS cache.
@item @code{--skip-gemini} @tab Don't use Gemini.
@item @code{--O gemini_db_buffers=#} @tab Number of database buffers in database cache.
@item @code{--O gemini_connection_limit=#} @tab Maximum number of connections to Gemini.
@item @code{--O gemini_spin_retries=#} @tab Spin lock retries (optimization).
@item @code{--O gemini_io_threads=#} @tab Number of background I/O threads.
@item @code{--O gemini_lock_table_size=#} @tab Set the maximum number of locks. Default 4096.
@end multitable
If you use @code{--skip-gemini}, @strong{MySQL} will not initialize the
Gemini table handler, saving memory; you cannot use Gemini tables if you
use @code{--skip-gemini}.
@node GEMINI features, GEMINI TODO, GEMINI start, GEMINI
@subsection Features of @code{GEMINI} tables:
@itemize @bullet
@item
If a query result can be resolved solely from the index key, Gemini will
not read the actual row stored in the database.
@item
Locking on Gemini tables is done at row level.
@item
@code{SELECT COUNT(*) FROM table_name} is fast; Gemini maintains a count
of the number of rows in the table.
@end itemize
@node GEMINI TODO, , GEMINI features, GEMINI
@subsection Current limitations of @code{GEMINI} tables:
@itemize @bullet
@item
BLOB columns are not supported in @code{GEMINI} tables.
@item
The maximum number of concurrent users accessing @code{GEMINI} tables is
limited by @code{gemini_connection_limit}. The default is 100 users.
@end itemize
NuSphere is working on removing these limitations.
@node INNOBASE, , GEMINI, Table types
@section INNOBASE Tables
@section INNOBASE Tables
@menu
@menu
* INNOBASE overview::
* INNOBASE overview::
* I
nnobase startup options::
* I
NNOBASE start:: INNOBASE startup options
* Using I
nnobase tables::
* Using I
NNOBASE tables:: Using INNOBASE tables
* INNOBASE restrictions::
* INNOBASE restrictions::
Some restrictions on @code{INNOBASE} tables:
@end menu
@end menu
@node INNOBASE overview, I
nnobase startup options
, INNOBASE, INNOBASE
@node INNOBASE overview, I
NNOBASE start
, INNOBASE, INNOBASE
@subsection INNOBASE Tables overview
@subsection INNOBASE Tables overview
Innobase tables are included in the @strong{MySQL} source distribution
Innobase is included in the @strong{MySQL} source distribution starting
starting from 3.23.34 and will be activated in the @strong{MySQL}-max
from 3.23.34 and will be activated in the @strong{MySQL}-max binary.
binary.
If you have downloaded a binary version of @strong{MySQL} that includes
If you have downloaded a binary version of @strong{MySQL} that includes
support for Berkeley DB, simply follow the instructions for
support for Berkeley DB, simply follow the instructions for
...
@@ -23550,8 +23650,8 @@ Innobase is a table handler that is under the GNU GPL License Version 2
...
@@ -23550,8 +23650,8 @@ Innobase is a table handler that is under the GNU GPL License Version 2
(of June 1991). In the source distribution of MySQL, Innobase appears as
(of June 1991). In the source distribution of MySQL, Innobase appears as
a subdirectory.
a subdirectory.
@node I
nnobase startup options, Using Innobase
tables, INNOBASE overview, INNOBASE
@node I
NNOBASE start, Using INNOBASE
tables, INNOBASE overview, INNOBASE
@subsection I
nnobase
startup options
@subsection I
NNOBASE
startup options
To use Innobase tables you must specify configuration parameters
To use Innobase tables you must specify configuration parameters
in the MySQL configuration file in the @code{[mysqld]} section of
in the MySQL configuration file in the @code{[mysqld]} section of
...
@@ -23647,8 +23747,8 @@ Innobase cannot notice. In cases like this the timeout is useful to
...
@@ -23647,8 +23747,8 @@ Innobase cannot notice. In cases like this the timeout is useful to
resolve the situation.
resolve the situation.
@end multitable
@end multitable
@node Using I
nnobase tables, INNOBASE restrictions, Innobase startup options
, INNOBASE
@node Using I
NNOBASE tables, INNOBASE restrictions, INNOBASE start
, INNOBASE
@subsection Using I
nnobase
tables
@subsection Using I
NNOBASE
tables
Technically, Innobase is a database backend placed under MySQL. Innobase
Technically, Innobase is a database backend placed under MySQL. Innobase
has its own buffer pool for caching data and indexes in main
has its own buffer pool for caching data and indexes in main
...
@@ -23721,7 +23821,7 @@ P.O.Box 800
...
@@ -23721,7 +23821,7 @@ P.O.Box 800
Finland
Finland
@end example
@end example
@node INNOBASE restrictions, , Using I
nnobase
tables, INNOBASE
@node INNOBASE restrictions, , Using I
NNOBASE
tables, INNOBASE
@subsection Some restrictions on @code{INNOBASE} tables:
@subsection Some restrictions on @code{INNOBASE} tables:
@itemize @bullet
@itemize @bullet
...
@@ -26472,7 +26572,7 @@ tables}.
...
@@ -26472,7 +26572,7 @@ tables}.
* Replication Options:: Replication Options in my.cnf
* Replication Options:: Replication Options in my.cnf
* Replication SQL:: SQL Commands related to replication
* Replication SQL:: SQL Commands related to replication
* Replication FAQ:: Frequently Asked Questions about replication
* Replication FAQ:: Frequently Asked Questions about replication
* Troubleshooting Replication:: Troubleshooting Replication
. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication.
* Troubleshooting Replication:: Troubleshooting Replication
@end menu
@end menu
@node Replication Intro, Replication Implementation, Replication, Replication
@node Replication Intro, Replication Implementation, Replication, Replication
...
@@ -39136,8 +39236,7 @@ Two APIs are available in the @strong{MySQL}
...
@@ -39136,8 +39236,7 @@ Two APIs are available in the @strong{MySQL}
@section MySQL Python APIs
@section MySQL Python APIs
The @strong{MySQL} @uref{http://www.mysql.com/Downloads/Contrib/,Contrib directory}
The @strong{MySQL} @uref{http://www.mysql.com/Downloads/Contrib/,Contrib directory}
contains a Python
contains a Python interface written by Joseph Skinner.
interface written by Joseph Skinner.
You can also use the Python interface to iODBC to access a
You can also use the Python interface to iODBC to access a
@strong{MySQL} server.
@strong{MySQL} server.
...
@@ -41447,6 +41546,12 @@ Our security expert.
...
@@ -41447,6 +41546,12 @@ Our security expert.
@item
@item
Vio interface (foundation for the the encrypted client/server protocol).
Vio interface (foundation for the the encrypted client/server protocol).
@item
@item
MySQL Filesystem (Way to use MySQL databases as files and directories).
@item
CASE Expression
@item
MD5(), COALESCE() functions.
@item
@code{RAID} support for @code{MyISAM} tables.
@code{RAID} support for @code{MyISAM} tables.
@end itemize
@end itemize
...
@@ -41902,6 +42007,8 @@ not yet 100 % confident in this code.
...
@@ -41902,6 +42007,8 @@ not yet 100 % confident in this code.
Added the @code{INNOBASE} table handler and the @code{BDB} table handler
Added the @code{INNOBASE} table handler and the @code{BDB} table handler
to the @strong{MySQL} source distribution.
to the @strong{MySQL} source distribution.
@item
@item
Updated the documentation about @code{GEMINI} tables.
@item
@code{REPLACE} will not replace a row that conflicts with an
@code{REPLACE} will not replace a row that conflicts with an
@code{auto_increment} generated key.
@code{auto_increment} generated key.
@item
@item
...
@@ -46804,6 +46911,11 @@ ORDER BY columns in the result, something that is you are not allowed
...
@@ -46804,6 +46911,11 @@ ORDER BY columns in the result, something that is you are not allowed
to do in ANSI SQL.
to do in ANSI SQL.
@item
@item
Because @strong{MySQL} allows you to work with table types that doesn't
support transactions (and thus can't @code{rollback} data) some things
behaves a little different in @strong{MySQL} than in other SQL servers:
(This is just to ensure that @strong{MySQL} never need to do a rollback
for a SQL command). This may be a little akward at times as column
Because @strong{MySQL} allows you to work with table types that don't
Because @strong{MySQL} allows you to work with table types that don't
support transactions, and thus can't @code{rollback} data, some things
support transactions, and thus can't @code{rollback} data, some things
behave a little differently in @strong{MySQL} than in other SQL servers.
behave a little differently in @strong{MySQL} than in other SQL servers.
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment