Sunday, September 23, 2007

Key Features in MySQL 5.1

For those of you new to MySQL 5.1 , I am going to provide a list of key features of MySQL so you can get a feel for the functionality of MySQL.
  • Partitioning - Partitioning provides scalability, performance and administration flexibility to working with large tables and indexes.
  • Row level replication - Row level replication adds to replication functionality in MySQL.
  • Database events - Allow DBAs to schedule batch events from within the database.
  • Table Logs - Give DBAs the option of logging to database tables instead of operating system files.
  • Platform Independence - MySQL can run on most versions of Unix, Linux, Windows and Mac OS.
  • Scalability - MySQL has grown so it can support 100s of gigabyte and terabyte sized databases. MySQL is known for very fast access.
  • Stored Procedures and Triggers - MySQL supports a database programming language almost exactly like Oracle’s PL/SQL language. It is a very easy transition for Oracle developers.
  • Powerful Storage Options - MySQL supports a good variety of storage engines (at the table level) for leveraging transactional, read performance etc. to allow a DBA to maximize the the configuration of the database for the business. For example, InnoDB contains strong transactional features, while MyISAM provides for very fast access for web based applications.
  • Views - MySQL supports traditional views (logical tables) as well as in-line views (in FROM clause).
  • Large Table Support- MySQL supports a number of partitioning options to support very large tables.
  • Traditional relational database functionality - MySQL supports traditional transaction features such as commits, rollbacks, row-level locking and foreign keys. Joins, sub-queries are also supported.
  • High Availability Architecture - MySQL supports a replication architecture for availability and scalability. This allows multiple MySQL databases to be spread across multiple systems using high-speed interconnects.
  • Full-text Searches - MySQL supports full text searches. Very impressed with how easily it was to implement this functionality. Initial tests are very fast.
  • Globalization - Strong support for Unicode for multiple character sets.
  • Large variety programming interfaces - An extremely large variety of APIs for PHP, Java, Ruby on Rails, Groovy, .NET, Python, etc. Supports ODBC and JDBC as well.
  • GIS Functionality - MySQL supports two-dimensional data for accessing and processing.
  • Clustering - Clustering spreads software components across multiple machines for high availability and fail-over. Clustering has techniques for keeping the different platforms synchronized.

MySQL Licensing

MySQL is available under GNU Public License (GPL), so someone can download the source or the binaries and use them for free. Commercial licenses and support are available for higher profile and production environments. MySQL Enterprise is available and offers support, consulting and online knowledge base. More details can be found at Make sure you read the license agreements carefully.

MySQL Releases
  • Alpha - New release requiring testing. Allows organizations to be on the bleeding edge.
  • Beta - Major changes are not expected but testing is required and bugs are likely to be found.
  • Gamma - Beta release has stabilized and searching for final bugs before going GA.
  • GA - General Availability (GA) is a mature stable version for production environments.

Before Going to Any New Release

Before going to any new release make sure you have looked at a bug report of the new features. Most customers are still on 4.0. You always want to make sure your eyes are wide open and you are aware of potential issues with new features. As an early adopter you may need to weigh the benefits of new features versus potential issues with a new release.

Excellent links on MySQL 5.1 Release

Below are a couple of links on MySQL 5.1 that you should definitely look at.


Anonymous said...

You are not serious in claiming that MySQL store routine implementation can keep up with Oracle .. or are you?

Unknown said...

Hi, :)

When looking at a new database, it can take a while for someone to understand key functionality of that database. The purpose of this article was to highlight key features that are supported for MySQL.

I've been an Oracle DBA for over 18 years and Oracle has some of the best solutions with storage in the world for enterprise environments. In the last year I have been a very big proponent of ASM. For very large enterprise environments RAC and ASM are a great solution.

In a lot of Oracle shops, they are looking at other database solutions at the small and medium sided database level. What I am saying it that I have seen MySQL as a popular solution in a lot of client sites versus a SQL Server, PostgreSQL or DB2 express solution.