The following list describes some of
the important characteristics of MySQL:
Fully multi-threaded using kernel
threads. That means it can easily use multiple CPUs if available.
C, C++, Eiffel, Java, Perl, PHP,
Python and Tcl APIs.
Works on many different platforms.
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.
Very fast joins using an optimized
one-sweep multi-join.
Full operator and function support in
the SELECT and WHERE parts of queries. 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 they can get! Usually
there shouldn't be 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. See section 18
MySQL ODBC Support.
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. Tested with a
commercial memory leakage detector (purify).
Includes myisamchk, a very fast
utility for table checking, optimization, and repair. See section 15
Maintaining a MySQL Installation.
Full support for several different
character sets, including ISO-8859-1 (Latin1), big5, ujis, and more. For
example, the Scandinavian characters `@ringaccent{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 how many rows 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. See section 7.39 Is MySQL Picky About 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. See section 10.1 What Languages Are Supported by
MySQL?. Clients may connect to the MySQL server using TCP/IP Sockets, Unix
Sockets (Unixes), 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.
No comments:
Post a Comment