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 http://www.mysql.com/support/supportedplatforms/ 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:// developer.kde.org/~sewardj/).

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

Advertisements

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s