Author: shinz
Date: 2006-01-06 23:49:23 +0100 (Fri, 06 Jan 2006)
New Revision: 712
Log:
Add to-be-German versions of .en.xml files
Added:
trunk/refman-common/manual-conventions.de.xml
trunk/refman-common/maxdb.de.xml
trunk/refman-common/what-is-mysql-ab.de.xml
trunk/refman-common/what-is.de.xml
Added: trunk/refman-common/manual-conventions.de.xml
===================================================================
--- trunk/refman-common/manual-conventions.de.xml 2006-01-06 21:50:51 UTC (rev 711)
+++ trunk/refman-common/manual-conventions.de.xml 2006-01-06 22:49:23 UTC (rev 712)
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+ <!ENTITY % fixedchars.entities SYSTEM "fixedchars.ent">
+ %fixedchars.entities;
+ <!ENTITY % title.entities SYSTEM "titles.en.ent">
+ %title.entities;
+]>
+<section id="manual-conventions">
+
+ <title>&title-manual-conventions;</title>
+
+ <para>
+ This manual uses certain typographical conventions:
+ </para>
+
+ <indexterm type="concept">
+ <primary>manual</primary>
+ <secondary>typographical conventions</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>typographical conventions</primary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>conventions</primary>
+ <secondary>typographical</secondary>
+ </indexterm>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <literal>Text in this style</literal> is used for SQL
+ statements; database, table, and column names; program listings
+ and source code; and environment variables. Example: <quote>To
+ reload the grant tables, use the <literal>FLUSH
+ PRIVILEGES</literal> statement</quote>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <userinput>Text in this style</userinput> indicates input that
+ you type in examples.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <command>Text in this style</command> indicates the names of
+ executable programs and scripts, examples being
+ <command>mysql</command> (the MySQL command line client program)
+ and <command>mysqld</command> (the MySQL server executable).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <replaceable>Text in this style</replaceable> is used for
+ variable input for which you should substitute a value of your
+ own choosing.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Filenames and directory names are written like this: <quote>The
+ global <filename>my.cnf</filename> file is located in the
+ <filename>/etc</filename> directory</quote>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Character sequences are written like this: <quote>To specify a
+ wildcard, use the ‘<literal>%</literal>’
+ character</quote>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis>Text in this style</emphasis> is used for emphasis.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Text in this style</emphasis> is used in
+ table headings and to convey especially strong emphasis.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ When commands are shown that are meant to be executed from within a
+ particular program, the prompt shown preceding the command indicates
+ which command to use. For example, <literal>shell></literal>
+ indicates a command that you execute from your login shell, and
+ <literal>mysql></literal> indicates a statement that you execute
+ from the <command>mysql</command> client program:
+ </para>
+
+<programlisting>
+shell> <userinput>type a shell command here</userinput>
+mysql> <userinput>type a mysql statement here</userinput>
+</programlisting>
+
+ <para>
+ The <quote>shell</quote> is your command interpreter. On Unix, this
+ is typically a program such as <command>sh</command>,
+ <command>csh</command>, or <command>bash</command>. On Windows, the
+ equivalent program is <command>command.com</command> or
+ <command>cmd.exe</command>, typically run in a console window.
+ </para>
+
+ <para>
+ When you enter a command or statement shown in an example, do not
+ type the prompt shown in the example.
+ </para>
+
+ <para>
+ Database, table, and column names must often be substituted into
+ statements. To indicate that such substitution is necessary, this
+ manual uses <replaceable>db_name</replaceable>,
+ <replaceable>tbl_name</replaceable>, and
+ <replaceable>col_name</replaceable>. For example, you might see a
+ statement like this:
+ </para>
+
+<programlisting>
+mysql> <userinput>SELECT <replaceable>col_name</replaceable> FROM <replaceable>db_name</replaceable>.<replaceable>tbl_name</replaceable>;</userinput>
+</programlisting>
+
+ <para>
+ This means that if you were to enter a similar statement, you would
+ supply your own database, table, and column names, perhaps like
+ this:
+ </para>
+
+<programlisting>
+mysql> <userinput>SELECT author_name FROM biblio_db.author_list;</userinput>
+</programlisting>
+
+ <para>
+ SQL keywords are not case sensitive and may be written in any
+ lettercase. This manual uses uppercase.
+ </para>
+
+ <para>
+ In syntax descriptions, square brackets
+ (‘<literal>[</literal>’ and
+ ‘<literal>]</literal>’) indicate optional words or
+ clauses. For example, in the following statement, <literal>IF
+ EXISTS</literal> is optional:
+ </para>
+
+<programlisting>
+DROP TABLE [IF EXISTS] <replaceable>tbl_name</replaceable>
+</programlisting>
+
+ <para>
+ When a syntax element consists of a number of alternatives, the
+ alternatives are separated by vertical bars
+ (‘<literal>|</literal>’). When one member from a set of
+ choices <emphasis>may</emphasis> be chosen, the alternatives are
+ listed within square brackets (‘<literal>[</literal>’
+ and ‘<literal>]</literal>’):
+ </para>
+
+<programlisting>
+TRIM([[BOTH | LEADING | TRAILING] [<replaceable>remstr</replaceable>] FROM] <replaceable>str</replaceable>)
+</programlisting>
+
+ <para>
+ When one member from a set of choices <emphasis>must</emphasis> be
+ chosen, the alternatives are listed within braces
+ (‘<literal>{</literal>’ and
+ ‘<literal>}</literal>’):
+ </para>
+
+<programlisting>
+{DESCRIBE | DESC} <replaceable>tbl_name</replaceable> [<replaceable>col_name</replaceable> | <replaceable>wild</replaceable>]
+</programlisting>
+
+ <para>
+ An ellipsis (<literal>…</literal>) indicates the omission of
+ a section of a statement, typically to provide a shorter version of
+ more complex syntax. For example, <literal>INSERT …
+ SELECT</literal> is shorthand for the form of
+ <literal>INSERT</literal> statement that is followed by a
+ <literal>SELECT</literal> statement.
+ </para>
+
+ <para>
+ An ellipsis can also indicate that the preceding syntax element of a
+ statement may be repeated. In the following example, multiple
+ <replaceable>reset_option</replaceable> values may be given, with
+ each of those after the first preceded by commas:
+ </para>
+
+<programlisting>
+RESET <replaceable>reset_option</replaceable> [,<replaceable>reset_option</replaceable>] ...
+</programlisting>
+
+ <para>
+ Commands for setting shell variables are shown using Bourne shell
+ syntax. For example, the sequence to set the <literal>CC</literal>
+ environment variable and run the <command>configure</command>
+ command looks like this in Bourne shell syntax:
+ </para>
+
+<programlisting>
+shell> <userinput>CC=gcc ./configure</userinput>
+</programlisting>
+
+ <indexterm type="concept">
+ <primary>shell syntax</primary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>command syntax</primary>
+ </indexterm>
+
+ <para>
+ If you are using <command>csh</command> or <command>tcsh</command>,
+ you must issue commands somewhat differently:
+ </para>
+
+<programlisting>
+shell> <userinput>setenv CC gcc</userinput>
+shell> <userinput>./configure</userinput>
+</programlisting>
+
+</section>
Added: trunk/refman-common/maxdb.de.xml
===================================================================
--- trunk/refman-common/maxdb.de.xml 2006-01-06 21:50:51 UTC (rev 711)
+++ trunk/refman-common/maxdb.de.xml 2006-01-06 22:49:23 UTC (rev 712)
@@ -0,0 +1,429 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+ <!ENTITY % fixedchars.entities SYSTEM "fixedchars.ent">
+ %fixedchars.entities;
+ <!ENTITY % title.entities SYSTEM "titles.en.ent">
+ %title.entities;
+]>
+<section id='maxdb'>
+
+ <title>&title-maxdb;</title>
+
+ <para>
+ MaxDB is a heavy-duty enterprise database. The database management
+ system is SAP-certified.
+ </para>
+
+ <para>
+ MaxDB is the new name of a database management system formerly
+ called SAP DB. In 2003 SAP AG and MySQL AB joined a partnership and
+ re-branded the database system to MaxDB. The development of MaxDB
+ has continued since then as it was done before—through the SAP
+ developer team.
+ </para>
+
+ <para>
+ MySQL AB cooperates closely with the MaxDB team at SAP around
+ delivering improvements to the MaxDB product. Joint efforts include
+ development of new native drivers to enable more efficient usage of
+ MaxDB in the Open Source community, and improvement of documentation
+ to expand the MaxDB user base. Interoperability features between
+ MySQL and MaxDB database also are seen as important. For example,
+ the new MaxDB Synchronization Manager supports data synchronization
+ from MaxDB to MySQL.
+ </para>
+
+ <para>
+ The MaxDB database management system does not share a common
+ code-base with the MySQL database management system. The MaxDB and
+ MySQL database management systems are independent products provided
+ by MySQL AB.
+ </para>
+
+ <para>
+ MySQL AB offers a complete portfolio of Professional Services for
+ MaxDB.
+ </para>
+
+ <section id="maxdb-overview">
+
+ <title>&title-maxdb-overview;</title>
+
+ <para>
+ MaxDB is an ANSI SQL-92 (entry level) compliant relational
+ database management system (RDBMS) from SAP AG, that is delivered
+ by MySQL AB as well. MaxDB fulfills the needs for enterprise
+ usage: safety, scalability, high concurrency, and performance. It
+ runs on all major operating systems. Over the years it has proven
+ able to run SAP R/3 and terabytes of data in 24×7 operation.
+ </para>
+
+ <para>
+ The database development started in 1977 as a research project at
+ the Technical University of Berlin. In the early 1980s it became a
+ database product that subsequently was owned by Nixdorf, Siemens
+ Nixdorf, Software AG, and today by SAP AG. Along the way, it has
+ been named VDN, Reflex, Supra 2, DDB/4, Entire SQL-DB-Server, and
+ ADABAS D. In 1997, SAP took over the software from software AG and
+ renamed it to SAP DB. Since October 2000, SAP DB sources
+ additionally were released as Open Source under the GNU General
+ Public License (see <xref linkend="gpl-license"/>).
+ </para>
+
+ <para>
+ In 2003, SAP AG and MySQL AB formed a partnership and re-branded
+ the database system to MaxDB.
+ </para>
+
+ </section>
+
+ <section id="maxdb-history">
+
+ <title>&title-maxdb-history;</title>
+
+ <para>
+ The history of MaxDB goes back to SAP DB, SAP AG's DBMS. That is,
+ MaxDB is a re-branded and enhanced version of SAP DB. For many
+ years, MaxDB has been used for small, medium, and large
+ installations of the mySAP Business Suite and other demanding SQL
+ applications requiring an enterprise-class DBMS with regard to the
+ number of users, the transactional workload, and the size of the
+ database.
+ </para>
+
+ <para>
+ SAP DB was meant to provide an alternative to third-party database
+ systems such as Oracle, Microsoft SQL Server, and DB2 by IBM. In
+ October 2000, SAP AG released SAP DB under the GNU GPL license
+ (see <xref linkend="gpl-license"/>), thus making it Open Source
+ software.
+ </para>
+
+ <para>
+ Today, MaxDB is used in about 3,500 SAP customer installations
+ worldwide. Moreover, the majority of all DBMS installations on
+ Unix and Linux within SAP’s IT department rely on MaxDB. MaxDB
+ is tuned toward heavy-duty online transaction processing (OLTP)
+ with several thousand users and database sizes ranging from
+ several hundred GB to multiple TB.
+ </para>
+
+ <para>
+ In 2003, SAP and MySQL concluded a partnership and development
+ cooperation agreement. As a result, SAP's database system SAP DB
+ has been delivered under the name of MaxDB by MySQL since the
+ release of version 7.5 (November 2003).
+ </para>
+
+ <para>
+ Version 7.5 of MaxDB is a direct advancement of the SAP DB 7.4
+ code base. Therefore, the MaxDB software version 7.5 can be used
+ as a direct upgrade of previous SAP DB versions starting 7.2.04
+ and higher.
+ </para>
+
+ <para>
+ The former SAP DB development team at SAP AG is responsible, now
+ as before, for developing and supporting MaxDB. MySQL AB
+ cooperates closely with the MaxDB team at SAP around delivering
+ improvements to the MaxDB product, see <xref linkend="maxdb"/>.
+ Both SAP AG and MySQL AB handle the sale and distribution of
+ MaxDB. The advancement of MaxDB and the MySQL Server leverages
+ synergies that benefit both product lines.
+ </para>
+
+ <para>
+ MaxDB is subjected to SAP AG's complete quality assurance process
+ before it is shipped with SAP solutions or provided as a download
+ from the MySQL site.
+ </para>
+
+ </section>
+
+ <section id="maxdb-features">
+
+ <title>&title-maxdb-features;</title>
+
+ <para>
+ MaxDB is a heavy-duty, SAP-certified Open Source database for OLTP
+ and OLAP usage which offers high reliability, availability,
+ scalability, and a very comprehensive feature set. It is targeted
+ for large mySAP Business Suite environments and other applications
+ that require maximum enterprise-level database functionality and
+ complements the MySQL database server.
+ </para>
+
+ <para>
+ MaxDB operates as a client/server product. It was developed to
+ meet the needs of installations in OLTP and Data
+ Warehouse/OLAP/Decision Support scenarios and offers these
+ benefits:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Easy configuration and
+ administration:</emphasis> GUI-based Installation Manager
+ and Database Manager as single administration tools for DBMS
+ operations
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Around-the-clock operation, no planned
+ downtimes, no permanent attendance required:</emphasis>
+ Automatic space management, no need for reorganizations
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Sophisticated backup and restore
+ capabilities:</emphasis> Online and incremental backups,
+ recovery wizard to guide you through the recovery scenario
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Supports large number of users,
+ database sizes in the terabytes, and demanding
+ workloads:</emphasis> Proven reliability, performance, and
+ scalability
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">High availability:</emphasis> Cluster
+ support, standby configuration, hot standby configuration
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ </section>
+
+ <section id="maxdb-licensing">
+
+ <title>&title-maxdb-licensing;</title>
+
+ <para>
+ MaxDB can be used under the same licenses available for the other
+ products distributed by MySQL AB. Thus, MaxDB is available under
+ the GNU General Public License, and a commercial license. For more
+ information on licensing, see
+ <ulink url="http://www.mysql.com/company/legal/licensing/"/>.
+ </para>
+
+ <para>
+ MySQL AB offers MaxDB technical support to non-SAP customers.
+ MaxDB support is available on various levels (Basic, Silver, and
+ Gold), which expand from unlimited email/web-support to 24×7
+ phone support for business critical systems.
+ </para>
+
+ <para>
+ MySQL AB also offers Licenses and Support for MaxDB when used with
+ SAP Applications, like SAP NetWeaver and mySAP Business Suite. For
+ more information on licenses and support for your needs, please
+ contact MySQL AB. (See
+ <ulink url="http://www.mysql.com/company/contact/"/>.)
+ </para>
+
+ <para>
+ Consulting and training services are available. MySQL gives
+ classes on MaxDB at regular intervals. See
+ <ulink url="http://www.mysql.com/training/"/> for a list of
+ classes.
+ </para>
+
+ </section>
+
+ <section id="maxdb-mysql-differences">
+
+ <title>&title-maxdb-mysql-differences;</title>
+
+ <para>
+ MaxDB is MySQL AB's SAP-certified database. The MaxDB database
+ server complements the MySQL AB product portfolio. Some MaxDB
+ features are not available on the MySQL database management server
+ and vice versa.
+ </para>
+
+ <para>
+ The following list summarizes the main differences between MaxDB
+ and MySQL; it is not complete.
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ MaxDB runs as a client/server system. MySQL can run as a
+ client/server system or as an embedded system.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MaxDB might not run on all platforms supported by MySQL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MaxDB uses a proprietary network protocol for client/server
+ communication. MySQL uses either TCP/IP (with or without SSL
+ encryption), sockets (under Unix-like systems), or named pipes
+ or shared memory (under Windows NT-family systems).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MaxDB supports stored procedures and functions. MySQL 5.0 and
+ up also supports stored procedures and function and functions.
+ MaxDB supports programming of triggers through an SQL
+ extension. MySQL 5.0 supports triggers. MaxDB contains a
+ debugger for stored procedure languages, can cascade nested
+ triggers, and supports multiple triggers per action and row.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MaxDB is distributed with user interfaces that are text-based,
+ graphical, or Web-based. MySQL is distributed with text-based
+ user interfaces only; graphical user interfaces (MySQL Query
+ Browser, MySQL Administrator) are shipped separately from the
+ main distributions. Web-based user interfaces for MySQL are
+ offered by third parties.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MaxDB supports a number of programming interfaces that also
+ are supported by MySQL. For developing with MaxDB, the MaxDB
+ ODBC Driver, SQL Database Connectivity (SQLDBC), JDBC Driver,
+ Perl and Python modules and a MaxDB PHP extension, which
+ provides access to MySQL MaxDB databases using PHP, are
+ available. Third Party Programming Interfaces: Support for OLE
+ DB, ADO, DAO, RDO and .NET through ODBC. MaxDB supports
+ embedded SQL with C/C++.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MaxDB includes administrative features that MySQL does not
+ have: job scheduling by time, event, and alert, and sending
+ messages to a database administrator on alert thresholds.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+<!-- Maybe add table showing maxima for MaxDB and MySQL. Might be obtained from crash-me comparison. -->
+
+ </section>
+
+ <section id="maxdb-mysql-interoperability">
+
+ <title>&title-maxdb-mysql-interoperability;</title>
+
+ <para>
+ MaxDB and MySQL are independent database management servers. The
+ interoperation of the systems is possible in a way that the
+ systems can exchange their data. To exchange data between MaxDB
+ and MySQL, you can use the import and export tools of the systems
+ or the MaxDB Synchronization Manager. The import and export tools
+ can be used to transfer data in an infrequent, manual fashion. The
+ MaxDB Synchronization Manager offers faster, automatic data
+ transfer capabilities.
+ </para>
+
+ <para>
+ The MaxDB Loader can be used to export data and object
+ definitions. The Loader can export data using MaxDB internal,
+ binary formats and text formats (CSV). Data exported from MaxDB in
+ text formats can be imported into MySQL using the
+ <command>mysqlimport</command> client program. To export MySQL
+ data, you can use either <command>mysqldump</command> to create
+ <literal>INSERT</literal> statements or <literal>SELECT ... INTO
+ OUTFILE</literal> to create a text file (CSV). Use the MaxDB
+ Loader to import the data files generated by MySQL.
+ </para>
+
+ <para>
+ Object definitions can be exchanged between the systems using
+ MaxDB Loader and the MySQL tool <command>mysqldump</command>. As
+ the SQL dialects of both systems differ slightly and MaxDB has
+ features currently not supported by MySQL like SQL constraints, we
+ recommend to hand-tune the definition files. The
+ <command>mysqldump</command> tool offers an option
+ <option>--compatible=maxdb</option> to produce output that is
+ compatible to MaxDB to make porting easier.
+ </para>
+
+ <para>
+ The MaxDB Synchronization Manager is available as part of MaxDB
+ 7.6. The Synchronization Manager supports creation of asynchronous
+ replication scenarios between several MaxDB instances. However,
+ interoperability features also are planned, so that the
+ Synchronization Manager supports replication to and from a MySQL
+ server.
+ </para>
+
+ <para>
+ In the first release, the Synchronization Manager supports
+ inserting data into MySQL. This means that initially only
+ replication from MaxDB to MySQL is supported. In the course of
+ 2005, exporting of data from a MySQL server to the Synchronization
+ Manager will be added, thus adding support for MySQL to MaxDB
+ replication scenarios.
+ </para>
+
+ </section>
+
+ <section id="maxdb-links">
+
+ <title>&title-maxdb-links;</title>
+
+ <para>
+ The main page for MaxDB information is
+ <ulink url="http://www.mysql.com/products/maxdb"/>, which provides
+ details about the features of the MaxDB database management
+ systems and has pointers to available documentation.
+ </para>
+
+ <para>
+ The MySQL Reference Manual does not contain any MaxDB
+ documentation other than the introduction given in this section.
+ MaxDB has its own documentation, which is called the MaxDB library
+ and is available at
+ <ulink url="&base-url-docs;maxdb/index.html" />.
+ </para>
+
+ <para>
+ MySQL AB runs a community mailing list on MaxDB; see
+ <ulink url="http://lists.mysql.com/maxdb" />. The list shows a
+ vivid community discussion. Many of the core developers contribute
+ to it. Product announcements are sent to the list.
+ </para>
+
+ <para>
+ A Web forum on MaxDB is available at
+ <ulink url="http://forums.mysql.com/" />. The forum focuses on
+ MaxDB questions not related to SAP applications.
+ </para>
+
+ </section>
+
+</section>
Added: trunk/refman-common/what-is-mysql-ab.de.xml
===================================================================
--- trunk/refman-common/what-is-mysql-ab.de.xml 2006-01-06 21:50:51 UTC (rev 711)
+++ trunk/refman-common/what-is-mysql-ab.de.xml 2006-01-06 22:49:23 UTC (rev 712)
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+ <!ENTITY % fixedchars.entities SYSTEM "fixedchars.ent">
+ %fixedchars.entities;
+ <!ENTITY % title.entities SYSTEM "titles.en.ent">
+ %title.entities;
+]>
+<section id="what-is-mysql-ab">
+
+ <title>&title-what-is-mysql-ab;</title>
+
+ <indexterm type="concept">
+ <primary>MySQL AB</primary>
+ <secondary>defined</secondary>
+ </indexterm>
+
+ <para>
+ MySQL AB is the company of the MySQL founders and main developers.
+ MySQL AB was originally established in Sweden by David Axmark, Allan
+ Larsson, and Michael <quote>Monty</quote> Widenius.
+ </para>
+
+ <para>
+ We are dedicated to developing the MySQL database software and
+ promoting it to new users. MySQL AB owns the copyright to the MySQL
+ source code, the MySQL logo and (registered) trademark, and this
+ manual. See <xref linkend="what-is"/>.
+ </para>
+
+ <para>
+ The MySQL core values show our dedication to MySQL and Open Source.
+ </para>
+
+ <para>
+ These core values direct how MySQL AB works with the MySQL server
+ software:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ To be the best and the most widely used database in the world
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ To be available and affordable by all
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ To be easy to use
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ To be continuously improved while remaining fast and safe
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ To be fun to use and improve
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ To be free from bugs
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ These are the core values of the company MySQL AB and its employees:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ We subscribe to the Open Source philosophy and support the Open
+ Source community
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ We aim to be good citizens
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ We prefer partners that share our values and mindset
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ We answer email and provide support
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ We are a virtual company, networking with others
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ We work against software patents
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ The MySQL Web site (<ulink url="http://www.mysql.com/"/>) provides
+ the latest information about MySQL and MySQL AB.
+ </para>
+
+ <para>
+ By the way, the <quote>AB</quote> part of the company name is the
+ acronym for the Swedish <quote>aktiebolag,</quote> or <quote>stock
+ company.</quote> It translates to <quote>MySQL, Inc.</quote> In
+ fact, MySQL, Inc. and MySQL GmbH are examples of MySQL AB
+ subsidiaries. They are located in the United States and Germany,
+ respectively.
+ </para>
+
+</section>
Added: trunk/refman-common/what-is.de.xml
===================================================================
--- trunk/refman-common/what-is.de.xml 2006-01-06 21:50:51 UTC (rev 711)
+++ trunk/refman-common/what-is.de.xml 2006-01-06 22:49:23 UTC (rev 712)
@@ -0,0 +1,1158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+ <!ENTITY % fixedchars.entities SYSTEM "fixedchars.ent">
+ %fixedchars.entities;
+ <!ENTITY % title.entities SYSTEM "titles.en.ent">
+ %title.entities;
+]>
+<section id="what-is">
+
+ <title>&title-what-is;</title>
+
+ <indexterm type="concept">
+ <primary>MySQL</primary>
+ <secondary>defined</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>MySQL</primary>
+ <secondary>introduction</secondary>
+ </indexterm>
+
+ <para>
+ MySQL, the most popular Open Source SQL database management system,
+ is developed, distributed, and supported by MySQL AB. MySQL AB is a
+ commercial company, founded by the MySQL developers. It is a second
+ generation Open Source company that unites Open Source values and
+ methodology with a successful business model.
+ </para>
+
+ <para>
+ The MySQL Web site (<ulink url="http://www.mysql.com/"/>) provides
+ the latest information about MySQL software and MySQL AB.
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ MySQL is a database management system.
+ </para>
+
+ <para>
+ A database is a structured collection of data. It may be
+ anything from a simple shopping list to a picture gallery or the
+ vast amounts of information in a corporate network. To add,
+ access, and process data stored in a computer database, you need
+ a database management system such as MySQL Server. Since
+ computers are very good at handling large amounts of data,
+ database management systems play a central role in computing, as
+ standalone utilities or as parts of other applications.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MySQL is a relational database management system.
+ </para>
+
+ <para>
+ <indexterm type="concept">
+ <primary>databases</primary>
+ <secondary>defined</secondary>
+ </indexterm>
+
+ A relational database stores data in separate tables rather than
+ putting all the data in one big storeroom. This adds speed and
+ flexibility. The SQL part of <quote>MySQL</quote> stands for
+ <quote>Structured Query Language.</quote> SQL is the most common
+ standardized language used to access databases and is defined by
+ the ANSI/ISO SQL Standard. The SQL standard has been evolving
+ since 1986 and several versions exist. In this manual,
+ <quote>SQL-92</quote> refers to the standard released in 1992,
+ <quote>SQL:1999</quote> refers to the standard released in 1999,
+ and <quote>SQL:2003</quote> refers to the current version of the
+ standard. We use the phrase <quote>the SQL standard</quote> to
+ mean the current version of the SQL Standard at any time.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MySQL software is Open Source.
+ </para>
+
+ <para>
+ <indexterm type="concept">
+ <primary>relational databases</primary>
+ <secondary>defined</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>SQL</primary>
+ <secondary>defined</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>Open Source</primary>
+ <secondary>defined</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>General Public License</primary>
+ </indexterm>
+
+ Open Source means that it is possible for anyone to use and
+ modify the software. Anybody can download the MySQL software
+ from the Internet and use it without paying anything. If you
+ wish, you may study the source code and change it to suit your
+ needs. The MySQL software uses the GPL (GNU General Public
+ License), <ulink url="http://www.fsf.org/licenses/"/>, to define
+ what you may and may not do with the software in different
+ situations. If you feel uncomfortable with the GPL or need to
+ embed MySQL code into a commercial application, you can buy a
+ commercially licensed version from us. See the MySQL Licensing
+ Overview for more information
+ (<ulink url="http://www.mysql.com/company/legal/licensing/"/>).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The MySQL Database Server is very fast, reliable, and easy to
+ use.
+ </para>
+
+ <para>
+ If that is what you are looking for, you should give it a try.
+ MySQL Server also has a practical set of features developed in
+ close cooperation with our users. You can find a performance
+ comparison of MySQL Server with other database managers on our
+ benchmark page. See <xref linkend="mysql-benchmarks"/>.
+ </para>
+
+ <para>
+ MySQL Server was originally developed to handle large databases
+ much faster than existing solutions and has been successfully
+ used in highly demanding production environments for several
+ years. Although under constant development, MySQL Server today
+ offers a rich and useful set of functions. Its connectivity,
+ speed, and security make MySQL Server highly suited for
+ accessing databases on the Internet.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MySQL Server works in client/server or embedded systems.
+ </para>
+
+ <para>
+ The MySQL Database Software is a client/server system that
+ consists of a multi-threaded SQL server that supports different
+ backends, several different client programs and libraries,
+ administrative tools, and a wide range of application
+ programming interfaces (APIs).
+ </para>
+
+ <para>
+ We also provide MySQL Server as an embedded multi-threaded
+ library that you can link into your application to get a
+ smaller, faster, easier-to-manage standalone product.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A large amount of contributed MySQL software is available.
+ </para>
+
+ <para>
+ It is very likely that your favorite application or language
+ supports the MySQL Database Server.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <indexterm type="concept">
+ <primary>pronunciation</primary>
+ <secondary>MySQL</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>MySQL</primary>
+ <secondary>pronunciation</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>goals of MySQL</primary>
+ </indexterm>
+
+ <para>
+ The official way to pronounce <quote>MySQL</quote> is <quote>My Ess
+ Que Ell</quote> (not <quote>my sequel</quote>), but we don't mind if
+ you pronounce it as <quote>my sequel</quote> or in some other
+ localized way.
+ </para>
+
+ <section id="history">
+
+ <title>&title-history;</title>
+
+ <indexterm type="concept">
+ <primary>MySQL history</primary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>history of MySQL</primary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>MySQL name</primary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>My</primary>
+ <secondary>derivation</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>MySQL Dolphin name</primary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>Sakila</primary>
+ </indexterm>
+
+ <para>
+ We started out with the intention of using the
+ <literal>mSQL</literal> database system to connect to our tables
+ using our own fast low-level (ISAM) routines. However, after some
+ testing, we came to the conclusion that <literal>mSQL</literal>
+ was not fast enough or flexible enough for our needs. This
+ resulted in a new SQL interface to our database but with almost
+ the same API interface as <literal>mSQL</literal>. This API was
+ designed to allow third-party code that was written for use with
+ <literal>mSQL</literal> to be ported easily for use with MySQL.
+ </para>
+
+ <para>
+ The derivation of the name MySQL is not clear. Our base directory
+ and a large number of our libraries and tools have had the prefix
+ <quote>my</quote> for well over 10 years. However, co-founder
+ Monty Widenius's daughter is also named My. Which of the two gave
+ its name to MySQL is still a mystery, even for us.
+ </para>
+
+ <para>
+ The name of the MySQL Dolphin (our logo) is <quote>Sakila,</quote>
+ which was chosen by the founders of MySQL AB from a huge list of
+ names suggested by users in our <quote>Name the Dolphin</quote>
+ contest. The winning name was submitted by Ambrose Twebaze, an
+ Open Source software developer from Swaziland, Africa. According
+ to Ambrose, the feminine name Sakila has its roots in SiSwati, the
+ local language of Swaziland. Sakila is also the name of a town in
+ Arusha, Tanzania, near Ambrose's country of origin, Uganda.
+ </para>
+
+ </section>
+
+ <section id="features">
+
+ <title>&title-features;</title>
+
+ <indexterm type="concept">
+ <primary>main features of MySQL</primary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>features of MySQL</primary>
+ </indexterm>
+
+ <para>
+ The following list describes some of the important characteristics
+ of the MySQL Database Software. See also
+ <xref linkend="roadmap"/>, for more information about current and
+ upcoming features.
+ </para>
+
+<!--
+ TODO: This list is too technical and should be divided into one
+ feature list comparable to commercial competition and a very
+ technical one with max limits (from crash-me) and so on.
+-->
+
+ <para>
+ Internals and Portability:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Written in C and C++.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Tested with a broad range of different compilers.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Works on many different platforms. See
+ <xref linkend="which-os"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Uses GNU Automake, Autoconf, and Libtool for portability.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and
+ Tcl are available. See <xref linkend="apis"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fully multi-threaded using kernel threads. It can easily use
+ multiple CPUs if they are available.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Provides transactional and non-transactional storage engines.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Uses very fast B-tree disk tables (<literal>MyISAM</literal>)
+ with index compression.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Relatively easy to add other storage engines. This is useful
+ if you want to add an SQL interface to an in-house database.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A very fast thread-based memory allocation system.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Very fast joins using an optimized one-sweep multi-join.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In-memory hash tables, which are used as temporary tables.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ SQL functions are implemented using a highly optimized class
+ library and should be as fast as possible. Usually there is no
+ memory allocation at all after query initialization.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The MySQL code is tested with Purify (a commercial memory
+ leakage detector) as well as with Valgrind, a GPL tool
+ (<ulink url="http://developer.kde.org/~sewardj/"/>).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The server is available as a separate program for use in a
+ client/server networked environment. It is also available as a
+ library that can be embedded (linked) into standalone
+ applications. Such applications can be used in isolation or in
+ environments where no network is available.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ Data Types:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Many data types: signed/unsigned integers 1, 2, 3, 4, and 8
+ bytes long, <literal>FLOAT</literal>,
+ <literal>DOUBLE</literal>, <literal>CHAR</literal>,
+ <literal>VARCHAR</literal>, <literal>TEXT</literal>,
+ <literal>BLOB</literal>, <literal>DATE</literal>,
+ <literal>TIME</literal>, <literal>DATETIME</literal>,
+ <literal>TIMESTAMP</literal>, <literal>YEAR</literal>,
+ <literal>SET</literal>, <literal>ENUM</literal>, and OpenGIS
+ spatial types. See <xref linkend="data-types"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed-length and variable-length records.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ Statements and Functions:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Full operator and function support in the
+ <literal>SELECT</literal> and <literal>WHERE</literal> clauses
+ of queries. For example:
+ </para>
+
+<programlisting>
+mysql> <userinput>SELECT CONCAT(first_name, ' ', last_name)</userinput>
+ -> <userinput>FROM citizen</userinput>
+ -> <userinput>WHERE income/dependents > 10000 AND age > 30;</userinput>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Full support for SQL <literal>GROUP BY</literal> and
+ <literal>ORDER BY</literal> clauses. Support for group
+ functions (<literal>COUNT()</literal>, <literal>COUNT(DISTINCT
+ ...)</literal>, <literal>AVG()</literal>,
+ <literal>STD()</literal>, <literal>SUM()</literal>,
+ <literal>MAX()</literal>, <literal>MIN()</literal>, and
+ <literal>GROUP_CONCAT()</literal>).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support for <literal>LEFT OUTER JOIN</literal> and
+ <literal>RIGHT OUTER JOIN</literal> with both standard SQL and
+ ODBC syntax.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support for aliases on tables and columns as required by
+ standard SQL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>DELETE</literal>, <literal>INSERT</literal>,
+ <literal>REPLACE</literal>, and <literal>UPDATE</literal>
+ return the number of rows that were changed (affected). It is
+ possible to return the number of rows matched instead by
+ setting a flag when connecting to the server.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The MySQL-specific <literal>SHOW</literal> command can be used
+ to retrieve information about databases, database engines,
+ tables, and indexes.
+ </para>
+
+ <para>
+ The <literal>EXPLAIN</literal> command can be used to
+ determine how the optimizer resolves a query.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Function names do not clash with table or column names. For
+ example, <literal>ABS</literal> is a valid column name. The
+ only restriction is that for a function call, no spaces are
+ allowed between the function name and the
+ ‘<literal>(</literal>’ that follows it. See
+ <xref linkend="reserved-words"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ You can mix tables from different databases in the same query
+ (as of MySQL 3.22).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ Security:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ A privilege and password system that is very flexible and
+ secure, and that allows host-based verification. Passwords are
+ secure because all password traffic is encrypted when you
+ connect to a server.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ Scalability and Limits:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Handles large databases. We use MySQL Server with databases
+ that contain 50 million records. We also know of users who use
+ MySQL Server with 60,000 tables and about 5,000,000,000 rows.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Up to 64 indexes per table are allowed (32 before MySQL
+ 4.1.2). Each index may consist of 1 to 16 columns or parts of
+ columns. The maximum index width is 1000 bytes (500 before
+ MySQL 4.1.2). An index may use a prefix of a column for
+ <literal>CHAR</literal>, <literal>VARCHAR</literal>,
+ <literal>BLOB</literal>, or <literal>TEXT</literal> column
+ types.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ Connectivity:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Clients can connect to the MySQL server using TCP/IP sockets
+ on any platform. On Windows systems in the NT family (NT,
+ 2000, XP, or 2003), clients can connect using named pipes. On
+ Unix systems, clients can connect using Unix domain socket
+ files.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In MySQL versions 4.1 and higher, Windows servers also support
+ shared-memory connections if started with the
+ <option>--shared-memory</option> option. Clients can connect
+ through shared memory by using the
+ <option>--protocol=memory</option> option.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The Connector/ODBC (MyODBC) interface provides MySQL support
+ for client programs that use ODBC (Open Database Connectivity)
+ connections. For example, you can use MS Access to connect to
+ your MySQL server. Clients can be run on Windows or Unix.
+ MyODBC source is available. All ODBC 2.5 functions are
+ supported, as are many others. See
+ <xref linkend="connectors"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The Connector/J interface provides MySQL support for Java
+ client programs that use JDBC connections. Clients can be run
+ on Windows or Unix. Connector/J source is available. See
+ <xref linkend="connectors"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MySQL Connector/NET enables developers to easily create .NET
+ applications that require secure, high-performance data
+ connectivity with MySQL. It implements the required ADO.NET
+ interfaces and integrates into ADO.NET aware tools. Developers
+ can build applications using their choice of .NET languages.
+ MySQL Connector/NET is a fully managed ADO.NET driver written
+ in 100% pure C#. See <xref linkend="connectors"/>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ Localization:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ The server can provide error messages to clients in many
+ languages. See <xref linkend="languages"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Full support for several different character sets, including
+ <literal>latin1</literal> (cp1252), <literal>german</literal>,
+ <literal>big5</literal>, <literal>ujis</literal>, and more.
+ For example, the Scandinavian characters
+ ‘<literal>å</literal>’,
+ ‘<literal>ä</literal>’ and
+ ‘<literal>ö</literal>’ are allowed in table and
+ column names. Unicode support is available as of MySQL 4.1.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ All data is saved in the chosen character set. All comparisons
+ for normal string columns are case-insensitive.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Sorting is done according to the chosen character set (using
+ Swedish collation by default). It is possible to change this
+ when the MySQL server is started. To see an example of very
+ advanced sorting, look at the Czech sorting code. MySQL Server
+ supports many different character sets that can be specified
+ at compile time and runtime.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ Clients and Tools:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ MySQL Server has built-in support for SQL statements to check,
+ optimize, and repair tables. These statements are available
+ from the command line through the
+ <command>mysqlcheck</command> client. MySQL also includes
+ <command>myisamchk</command>, a very fast command-line utility
+ for performing these operations on <literal>MyISAM</literal>
+ tables. See <xref linkend="database-administration"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ All MySQL programs can be invoked with the
+ <option>--help</option> or <option>-?</option> options to
+ obtain online assistance.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+ <section id="stability">
+
+ <title>&title-stability;</title>
+
+ <indexterm type="concept">
+ <primary>stability</primary>
+ </indexterm>
+
+ <para>
+ This section addresses the questions, <quote><emphasis>How stable
+ is MySQL Server?</emphasis></quote> and, <quote><emphasis>Can I
+ depend on MySQL Server in this project?</emphasis></quote> We will
+ try to clarify these issues and answer some important questions
+ that concern many potential users. The information in this section
+ is based on data gathered from the mailing lists, which are very
+ active in identifying problems as well as reporting types of use.
+ </para>
+
+ <para>
+ The original code stems back to the early 1980s. It provides a
+ stable code base, and the <literal>ISAM</literal> table format
+ used by the original storage engine remains backward-compatible.
+ At TcX, the predecessor of MySQL AB, MySQL code has worked in
+ projects since mid-1996, without any problems. When the MySQL
+ Database Software initially was released to a wider public, our
+ new users quickly found some pieces of untested code. Each new
+ release since then has had fewer portability problems, even though
+ each new release has also had many new features.
+ </para>
+
+ <para>
+ Each release of the MySQL Server has been usable. Problems have
+ occurred only when users try code from the <quote>gray
+ zones.</quote> Naturally, new users don't know what the gray zones
+ are; this section therefore attempts to document those areas that
+ are currently known. The descriptions mostly deal with Versions
+ 3.23 and later of MySQL Server. All known and reported bugs are
+ fixed in the latest version, with the exception of those listed in
+ the bugs section, which are design-related. See
+ <xref linkend="bugs"/>.
+ </para>
+
+ <para>
+ The MySQL Server design is multi-layered with independent modules.
+ Some of the newer modules are listed here with an indication of
+ how well-tested each of them is:
+ </para>
+
+ <indexterm type="concept">
+ <primary>modules</primary>
+ <secondary>list of</secondary>
+ </indexterm>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Replication (Stable)
+ </para>
+
+ <para>
+ Large groups of servers using replication are in production
+ use, with good results. Work on enhanced replication features
+ is continuing.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>InnoDB</literal> tables (Stable)
+ </para>
+
+ <para>
+ The <literal>InnoDB</literal> transactional storage engine has
+ been stable since version 3.23.49. <literal>InnoDB</literal>
+ is being used in large, heavy-load production systems.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>BDB</literal> tables (Stable)
+ </para>
+
+ <para>
+ The <literal>Berkeley DB</literal> code is very stable, but we
+ are still improving the <literal>BDB</literal> transactional
+ storage engine interface in MySQL Server.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Full-text searches (Stable)
+ </para>
+
+ <para>
+ Full-text searching is widely used. Important feature
+ enhancements were added in MySQL 4.0 and 4.1.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>MyODBC</literal> 3.51 (Stable)
+ </para>
+
+ <para>
+ <literal>MyODBC</literal> 3.51 uses ODBC SDK 3.51 and is in
+ wide production use. Some issues brought up appear to be
+ application-related and independent of the ODBC driver or
+ underlying database server.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+ <section id="table-size">
+
+ <title>&title-table-size;</title>
+
+ <indexterm type="concept">
+ <primary>tables</primary>
+ <secondary>maximum size</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>size of tables</primary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>operating systems</primary>
+ <secondary>file-size limits</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>limits</primary>
+ <secondary>file-size</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>files</primary>
+ <secondary>size limits</secondary>
+ </indexterm>
+
+ <remark role="todo">
+ Move to MyISAM storage engine section, replace with more general
+ "limits" section.
+ </remark>
+
+ <para>
+ MySQL 3.22 had a 4GB (4 gigabyte) limit on table size. With the
+ <literal>MyISAM</literal> storage engine in MySQL 3.23, the
+ maximum table size was increased to 65536 terabytes
+ (256<superscript>7</superscript> − 1 bytes). With this
+ larger allowed table size, the maximum effective table size for
+ MySQL databases is usually determined by operating system
+ constraints on file sizes, not by MySQL internal limits.
+ </para>
+
+ <para>
+ The <literal>InnoDB</literal> storage engine maintains
+ <literal>InnoDB</literal> tables within a tablespace that can be
+ created from several files. This allows a table to exceed the
+ maximum individual file size. The tablespace can include raw disk
+ partitions, which allows extremely large tables. The maximum
+ tablespace size is 64TB.
+ </para>
+
+ <para>
+ The following table lists some examples of operating system
+ file-size limits. This is only a rough guide and is not intended
+ to be definitive. For the most up-to-date information, be sure to
+ check the documentation specific to your operating system.
+ </para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colwidth="30*"/>
+ <colspec colwidth="50*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Operating System</emphasis></entry>
+ <entry><emphasis role="bold">File-size Limit</emphasis></entry>
+ </row>
+ <row>
+ <entry>Linux 2.2-Intel 32-bit</entry>
+ <entry>2GB (LFS: 4GB)</entry>
+ </row>
+ <row>
+ <entry>Linux 2.4+</entry>
+ <entry>(using ext3 filesystem) 4TB</entry>
+ </row>
+ <row>
+ <entry>Solaris 9/10</entry>
+ <entry>16TB</entry>
+ </row>
+ <row>
+ <entry>NetWare w/NSS filesystem</entry>
+ <entry>8TB</entry>
+ </row>
+ <row>
+ <entry>Win32 w/ FAT/FAT32</entry>
+ <entry>2GB/4GB</entry>
+ </row>
+ <row>
+ <entry>Win32 w/ NTFS</entry>
+ <entry>2TB (possibly larger)</entry>
+ </row>
+ <row>
+ <entry>MacOS X w/ HFS+</entry>
+ <entry>2TB</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ On Linux 2.2, you can get <literal>MyISAM</literal> tables larger
+ than 2GB in size by using the Large File Support (LFS) patch for
+ the ext2 filesystem. On Linux 2.4, patches also exist for ReiserFS
+ to get support for big files (up to 2TB). Most current Linux
+ distributions are based on kernel 2.4 and include all the required
+ LFS patches. With JFS and XFS, petabyte and larger files are
+ possible on Linux. However, the maximum available file size still
+ depends on several factors, one of them being the filesystem used
+ to store MySQL tables.
+ </para>
+
+ <para>
+ For a detailed overview about LFS in Linux, have a look at Andreas
+ Jaeger's <citetitle>Large File Support in Linux</citetitle> page
+ at <ulink url="http://www.suse.de/~aj/linux_lfs.html"/>.
+ </para>
+
+ <para>
+ Windows users please note: FAT and VFAT (FAT32) are
+ <emphasis>not</emphasis> considered suitable for production use
+ with MySQL. Use NTFS instead.
+ </para>
+
+ <para>
+ By default, MySQL creates <literal>MyISAM</literal> tables with an
+ internal structure that allows a maximum size of about 4GB. You
+ can check the maximum table size for a <literal>MyISAM</literal>
+ table with the <literal>SHOW TABLE STATUS</literal> statement or
+ with <command>myisamchk -dv
+ <replaceable>tbl_name</replaceable></command>. See
+ <xref linkend="show"/>.
+ </para>
+
+ <para>
+ If you need a <literal>MyISAM</literal> table that is larger than
+ 4GB and your operating system supports large files, the
+ <literal>CREATE TABLE</literal> statement supports
+ <literal>AVG_ROW_LENGTH</literal> and <literal>MAX_ROWS</literal>
+ options. See <xref linkend="create-table"/>. You can also change
+ these options with <literal>ALTER TABLE</literal> to increase a
+ table's maximum allowable size after the table has been created.
+ See <xref linkend="alter-table"/>.
+ </para>
+
+ <para>
+ Other ways to work around file-size limits for
+ <literal>MyISAM</literal> tables are as follows:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ If your large table is read-only, you can use
+ <command>myisampack</command> to compress it.
+ <command>myisampack</command> usually compresses a table by at
+ least 50%, so you can have, in effect, much bigger tables.
+ <command>myisampack</command> also can merge multiple tables
+ into a single table. See <xref linkend="myisampack"/>.
+ </para>
+
+<!--
+ <para>
+ In MySQL 4.1 and earlier, you can also get around the
+ operating system file limit for <literal>MyISAM</literal>
+ data files by using the <literal>RAID</literal> options for
+ <literal>CREATE TABLE</literal>. See
+ <xref linkend="create-table"/>. <emphasis>Please note that
+ <literal>RAID</literal> support is unavailable in MySQL 5.0
+ and later versions</emphasis>.
+ </para>
+-->
+ </listitem>
+
+ <listitem>
+ <para>
+ MySQL includes a <literal>MERGE</literal> library that allows
+ you to handle a collection of <literal>MyISAM</literal> tables
+ that have identical structure as a single
+ <literal>MERGE</literal> table. See
+ <xref linkend="merge-storage-engine"/>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+ <section id="year-2000-compliance">
+
+ <title>&title-year-2000-compliance;</title>
+
+ <indexterm type="concept">
+ <primary>Year 2000 compliance</primary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>compliance</primary>
+ <secondary>Y2K</secondary>
+ </indexterm>
+
+ <indexterm type="concept">
+ <primary>date functions</primary>
+ <secondary>Y2K compliance</secondary>
+ </indexterm>
+
+ <para>
+ The MySQL Server itself has no problems with Year 2000 (Y2K)
+ compliance:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ MySQL Server uses Unix time functions that handle dates into
+ the year <literal>2037</literal> for
+ <literal>TIMESTAMP</literal> values. For
+ <literal>DATE</literal> and <literal>DATETIME</literal>
+ values, dates through the year <literal>9999</literal> are
+ accepted.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ All MySQL date functions are implemented in one source file,
+ <filename>sql/time.cc</filename>, and are coded very carefully
+ to be year 2000-safe.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In MySQL, the <literal>YEAR</literal> column type can store
+ the years <literal>0</literal> and <literal>1901</literal> to
+ <literal>2155</literal> in one byte and display them using two
+ or four digits. All two-digit years are considered to be in
+ the range <literal>1970</literal> to <literal>2069</literal>,
+ which means that if you store <literal>01</literal> in a
+ <literal>YEAR</literal> column, MySQL Server treats it as
+ <literal>2001</literal>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ The following simple demonstration illustrates that MySQL Server
+ has no problems with <literal>DATE</literal> or
+ <literal>DATETIME</literal> values through the year 9999, and no
+ problems with <literal>TIMESTAMP</literal> values until after the
+ year 2030:
+ </para>
+
+<programlisting>
+mysql> <userinput>DROP TABLE IF EXISTS y2k;</userinput>
+Query OK, 0 rows affected (0.00 sec)
+
+mysql> <userinput>CREATE TABLE y2k (date DATE,</userinput>
+ -> <userinput> date_time DATETIME,</userinput>
+ -> <userinput> time_stamp TIMESTAMP);</userinput>
+Query OK, 0 rows affected (0.01 sec)
+
+mysql> <userinput>INSERT INTO y2k VALUES</userinput>
+ -> <userinput>('1998-12-31','1998-12-31 23:59:59','1998-12-31 23:59:59'),</userinput>
+ -> <userinput>('1999-01-01','1999-01-01 00:00:00','1999-01-01 00:00:00'),</userinput>
+ -> <userinput>('1999-09-09','1999-09-09 23:59:59','1999-09-09 23:59:59'),</userinput>
+ -> <userinput>('2000-01-01','2000-01-01 00:00:00','2000-01-01 00:00:00'),</userinput>
+ -> <userinput>('2000-02-28','2000-02-28 00:00:00','2000-02-28 00:00:00'),</userinput>
+ -> <userinput>('2000-02-29','2000-02-29 00:00:00','2000-02-29 00:00:00'),</userinput>
+ -> <userinput>('2000-03-01','2000-03-01 00:00:00','2000-03-01 00:00:00'),</userinput>
+ -> <userinput>('2000-12-31','2000-12-31 23:59:59','2000-12-31 23:59:59'),</userinput>
+ -> <userinput>('2001-01-01','2001-01-01 00:00:00','2001-01-01 00:00:00'),</userinput>
+ -> <userinput>('2004-12-31','2004-12-31 23:59:59','2004-12-31 23:59:59'),</userinput>
+ -> <userinput>('2005-01-01','2005-01-01 00:00:00','2005-01-01 00:00:00'),</userinput>
+ -> <userinput>('2030-01-01','2030-01-01 00:00:00','2030-01-01 00:00:00'),</userinput>
+ -> <userinput>('2040-01-01','2040-01-01 00:00:00','2040-01-01 00:00:00'),</userinput>
+ -> <userinput>('9999-12-31','9999-12-31 23:59:59','9999-12-31 23:59:59');</userinput>
+Query OK, 14 rows affected, 2 warnings (0.00 sec)
+Records: 14 Duplicates: 0 Warnings: 2
+
+mysql> <userinput>SELECT * FROM y2k;</userinput>
++------------+---------------------+---------------------+
+| date | date_time | time_stamp |
++------------+---------------------+---------------------+
+| 1998-12-31 | 1998-12-31 23:59:59 | 1998-12-31 23:59:59 |
+| 1999-01-01 | 1999-01-01 00:00:00 | 1999-01-01 00:00:00 |
+| 1999-09-09 | 1999-09-09 23:59:59 | 1999-09-09 23:59:59 |
+| 2000-01-01 | 2000-01-01 00:00:00 | 2000-01-01 00:00:00 |
+| 2000-02-28 | 2000-02-28 00:00:00 | 2000-02-28 00:00:00 |
+| 2000-02-29 | 2000-02-29 00:00:00 | 2000-02-29 00:00:00 |
+| 2000-03-01 | 2000-03-01 00:00:00 | 2000-03-01 00:00:00 |
+| 2000-12-31 | 2000-12-31 23:59:59 | 2000-12-31 23:59:59 |
+| 2001-01-01 | 2001-01-01 00:00:00 | 2001-01-01 00:00:00 |
+| 2004-12-31 | 2004-12-31 23:59:59 | 2004-12-31 23:59:59 |
+| 2005-01-01 | 2005-01-01 00:00:00 | 2005-01-01 00:00:00 |
+| 2030-01-01 | 2030-01-01 00:00:00 | 2030-01-01 00:00:00 |
+| 2040-01-01 | 2040-01-01 00:00:00 | 0000-00-00 00:00:00 |
+| 9999-12-31 | 9999-12-31 23:59:59 | 0000-00-00 00:00:00 |
++------------+---------------------+---------------------+
+14 rows in set (0.00 sec)
+</programlisting>
+
+ <para>
+ The final two <literal>TIMESTAMP</literal> column values are zero
+ because the year values (<literal>2040</literal>,
+ <literal>9999</literal>) exceed the <literal>TIMESTAMP</literal>
+ maximum. The <literal>TIMESTAMP</literal> data type, which is used
+ to store the current time, supports values that range from
+ <literal>'1970-01-01 00:00:00'</literal> to <literal>'2030-01-01
+ 00:00:00'</literal> on 32-bit machines (signed value). On 64-bit
+ machines, <literal>TIMESTAMP</literal> handles values up to
+ <literal>2106</literal> (unsigned value).
+ </para>
+
+ <para>
+ Although MySQL Server itself is Y2K-safe, you may run into
+ problems if you use it with applications that are not Y2K-safe.
+ For example, many old applications store or manipulate years using
+ two-digit values (which are ambiguous) rather than four-digit
+ values. This problem may be compounded by applications that use
+ values such as <literal>00</literal> or <literal>99</literal> as
+ <quote>missing</quote> value indicators. Unfortunately, these
+ problems may be difficult to fix because different applications
+ may be written by different programmers, each of whom may use a
+ different set of conventions and date-handling functions.
+ </para>
+
+ <para>
+ Thus, even though MySQL Server has no Y2K problems, <emphasis>it
+ is the application's responsibility to provide unambiguous
+ input</emphasis>. See <xref linkend="y2k-issues"/>, for MySQL
+ Server's rules for dealing with ambiguous date input data that
+ contains two-digit year values.
+ </para>
+
+ </section>
+
+</section>
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r712 - trunk/refman-common | stefan | 6 Jan |