Written in C and C++.
Tested with a broad range of different compilers.
Works on many different platforms.
Uses GNU Automake, Autoconf, and Libtool for portability.
Tested with Purify (a commercial memory leakage detector) as well as with Valgrind, a GPL tool.
Uses multi-layered server design with independent modules.
Designed to be fully multi-threaded using kernel threads, to easily use multiple CPUs if they are available.
Provides transactional and nontransactional storage engines.
Uses very fast B-tree disk tables (MyISAM) with index compression.
Designed to make it relatively easy to add other storage engines. This is useful if you want to provide an SQL interface for an in-house database.
Uses a very fast thread-based memory allocation system.
Executes very fast joins using an optimized nested-loop join.
Implements in-memory hash tables, which are used as temporary tables.
Implements SQL functions using a highly optimized class library that should be as fast as possible. Usually there is no memory allocation at all after query initialization.
Provides the server as a separate program for use in a client/server networked environment, and 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.
Feb 17, 2010