GNU Info

Info Node: (mysql.info)Features

(mysql.info)Features


Next: Stability Prev: History Up: MySQL and MySQL AB
Enter node , (file) or (file)node

The Main Features of MySQL
--------------------------

The following list describes some of the important characteristics of
MySQL:

   * Fully multi-threaded using kernel threads.  This means it can
     easily use multiple CPUs if available.

   * C, C++, Eiffel, Java, Perl, PHP, Python and Tcl APIs.  Note:
     Clients.

   * Works on many different platforms.  Note: Which OS.

   * Many column types: signed/unsigned integers 1, 2, 3, 4, and 8 bytes
     long, `FLOAT', `DOUBLE', `CHAR', `VARCHAR', `TEXT', `BLOB',
     `DATE', `TIME', `DATETIME', `TIMESTAMP', `YEAR', `SET', and `ENUM'
     types.  Note: Column types.

   * Very fast joins using an optimized one-sweep multi-join.

   * Full operator and function support in the `SELECT' and `WHERE'
     parts of queries.  For example:

          mysql> SELECT CONCAT(first_name, " ", last_name) FROM tbl_name
                     WHERE income/dependents > 10000 AND age > 30;

   * SQL functions are implemented through a highly optimized class
     library and should be as fast as possible!  Usually there isn't
     any memory allocation at all after query initialization.

   * Full support for SQL `GROUP BY' and `ORDER BY' clauses.  Support
     for group functions (`COUNT()', `COUNT(DISTINCT ...)', `AVG()',
     `STD()', `SUM()', `MAX()' and `MIN()').

   * Support for `LEFT OUTER JOIN' and `RIGHT OUTER JOIN' with ANSI SQL
     and ODBC syntax.

   * You can mix tables from different databases in the same query (as
     of Version 3.22).

   * A privilege and password system that is very flexible and secure,
     and allows host-based verification.  Passwords are secure because
     all password traffic is encrypted when you connect to a server.

   * ODBC (Open-DataBase-Connectivity) support for Win32 (with source).
     All ODBC 2.5 functions and many others.  For example, you can use
     MS Access to connect to your MySQL server.  Note: ODBC.

   * Very fast B-tree disk tables with index compression.

   * Up to 32 indexes per table are allowed.  Each index may consist of
     1 to 16 columns or parts of columns.  The maximum index length is
     500 bytes (this may be changed when compiling MySQL).  An index
     may use a prefix of a `CHAR' or `VARCHAR' field.

   * Fixed-length and variable-length records.

   * In-memory hash tables which are used as temporary tables.

   * Handles large databases.  We are using MySQL with some databases
     that contain 50,000,000 records and we know of users that uses
     MySQL with 60,000 tables and about 5,000,000,000 rows

   * All columns have default values.  You can use `INSERT' to insert a
     subset of a table's columns; those columns that are not explicitly
     given values are set to their default values.

   * Uses GNU Automake, Autoconf, and Libtool for portability.

   * Written in C and C++.  Tested with a broad range of different
     compilers.

   * A very fast thread-based memory allocation system.

   * No memory leaks.  MySQL has been tested with Purify, a commercial
     memory leakage detector.

   * Includes `myisamchk', a very fast utility for table checking,
     optimization, and repair.  All of the functionality of `myisamchk'
     is also available through the SQL interface as well.  Note: MySQL
     Database Administration.

   * Full support for several different character sets, including
     ISO-8859-1 (Latin1), big5, ujis, and more.  For example, the
     Scandinavian characters `a*', `a"' and `o"' are allowed in table
     and column names.

   * All data are saved in the chosen character set.  All comparisons
     for normal string columns are case insensitive.

   * Sorting is done according to the chosen character set (the Swedish
     way by default).  It is possible to change this when the MySQL
     server is started up.  To see an example of very advanced sorting,
     look at the Czech sorting code.  MySQL supports many different
     character sets that can be specified at compile and run time.

   * Aliases on tables and columns are allowed as in the SQL92 standard.

   * `DELETE', `INSERT', `REPLACE', and `UPDATE' 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.

   * Function names do not clash with table or column names.  For
     example, `ABS' is a valid column name.  The only restriction is
     that for a function call, no spaces are allowed between the
     function name and the `(' that follows it.  Note: Reserved words.

   * All MySQL programs can be invoked with the `--help' or `-?'
     options to obtain online assistance.

   * The server can provide error messages to clients in many languages.
     Note: Languages.

   * Clients may connect to the MySQL server using TCP/IP Sockets, Unix
     Sockets (Unix), or Named Pipes (NT).

   * The MySQL-specific `SHOW' command can be used to retrieve
     information about databases, tables, and indexes.  The `EXPLAIN'
     command can be used to determine how the optimizer resolves a
     query.


automatically generated by info2www version 1.2.2.9