MySQL Internals and Portability

You can found the latest copy of MySQL on GitHub.

  • MySQL is written in C and C++

  • Works on many different platforms. See database.html.

  • For portability, uses CMake in MySQL 5.5 and up. Previous series use GNU Automake, Autoconf, and Libtool.

  • MySQL is tested with Purify (a commercial memory leakage detector) as well as with Valgrind, a GPL tool (http://

  • MySQL uses multi-layered server design with independent modules.

  • MySQL is designed to be fully multi-threaded using kernel threads, to easily use multiple CPUs if they are available.

  • MySQL provides transactional and nontransactional storage engines.

  • MySQL uses very fast B-tree disk tables (MyISAM) with index compression.

  • MySQL uses a very fast thread-based memory allocation system.

  • MySQL executes very fast joins using an optimized nested-loop join.

  • MySQL implements in-memory hash tables, which are used as temporary tables.

  • MySQL 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.

  • MySQL 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.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s