Stable Release in branch 5.0
5.0.96
Released 09 Jan 2012
(14 years ago)
SoftwareMySQL
Version5.0
Status
End of life
Initial release5.0.0
22 Dec 2003
(22 years ago)
Latest release5.0.96
09 Jan 2012
(14 years ago)
End of
premier support
TBD
End of
extended support
09 Jan 2012
(Ended 14 years ago)
Release noteshttps://dev.mysql.com/doc/relnotes/mysql/5.0/en/
Source codehttps://github.com/mysql/mysql-server/tree/mysql-5.0.96
Documentationhttps://dev.mysql.com/doc/refman/5.0/en/
Downloadhttps://dev.mysql.com/downloads/mysql/
MySQL 5.0 ReleasesView full list

What Is New in MySQL 5.0

MySQL 5.0 was a landmark release that introduced major features moving it beyond a basic data store into a more powerful relational database system. The core additions include stored procedures, triggers, views, and the XA distributed transaction protocol, fundamentally changing how developers could structure their database logic.

Category Key Changes
New Features Stored Procedures, Triggers, Views, XA Transactions, INFORMATION_SCHEMA
Improvements Performance Schema instrumentation, SQL Standard Compliance
Storage Engines Falcon storage engine (preview), ARCHIVE engine for compression

How did stored procedures change database development?

Stored procedures were arguably the biggest deal in 5.0. For the first time, you could write procedural logic using SQL/PSM and execute it directly on the server. This moved complex business logic out of the application layer and into the database, which could reduce network overhead for operations requiring multiple SQL statements.

In practice, this meant you could create a procedure to handle a multi-step transaction, call it with a single command, and have the entire operation execute on the server. The syntax included familiar control-flow structures like loops and conditionals, making it feel like a real programming language.

Example Procedure

CREATE PROCEDURE GetCustomer(IN cust_id INT)
BEGIN
  SELECT * FROM customers WHERE id = cust_id;
END;

What can you do with triggers and views?

Triggers allowed you to automatically execute code in response to data changes (INSERT, UPDATE, DELETE). This was perfect for enforcing complex business rules, auditing, or maintaining summary tables without manual intervention. You could set them to fire before or after an event.

Views provided a way to create virtual tables based on a SQL query. They simplified complex queries for application developers, added an abstraction layer over the underlying schema, and could be used to implement basic row-level security by filtering data.

Example Trigger

CREATE TRIGGER audit_employee_update AFTER UPDATE ON employees
FOR EACH ROW
INSERT INTO audit_log (change_type, emp_id) VALUES ('update', NEW.id);

Why is the INFORMATION_SCHEMA so useful?

The INFORMATION_SCHEMA database provided a standards-based way to get metadata about your database objects. Instead of using proprietary SHOW commands, you could query virtual tables like TABLES, COLUMNS, and STATISTICS using regular SQL.

This mattered because it made writing administrative tools and scripts much easier and more portable. You could join these metadata tables with your application data to build dynamic queries or generate reports on your database structure.

How did transaction handling improve?

Support for XA transactions was a big step for integration. XA allows a database to participate in global transactions coordinated by an external transaction manager, which is essential for working with Java EE application servers or coordinating updates across multiple distributed resources.

This made MySQL a viable candidate for more complex enterprise applications that required two-phase commit protocols to ensure data consistency across different systems, like a database and a message queue.

FAQ

Should I put all my business logic in stored procedures now?
Not necessarily. While powerful, stored logic can make your application harder to debug and version control. Many teams prefer to keep logic in the application layer for simplicity, using stored procedures only for performance-critical operations that benefit from reduced network round-trips.

Are views updatable?
Simple views based on a single table are often updatable, but complex views with joins or aggregation are read-only. The server determines updatability based on the view's definition.

What's the performance impact of triggers?
Triggers add overhead to every DML operation they're attached to. A trigger that does heavy processing on every INSERT can significantly slow down bulk data loads. Always test performance with your specific workload.

Can I use XA transactions with InnoDB?
Yes, XA transaction support in MySQL 5.0 primarily works with the InnoDB storage engine, which provides the necessary transactional guarantees for the two-phase commit protocol.

Is the Falcon storage engine production-ready?
No, the Falcon engine included in some MySQL 5.0 distributions was a preview technology and never reached production-ready status. It was later discontinued in favor of improvements to InnoDB.

Releases In Branch 5.0

VersionRelease date
5.0.9609 Jan 2012
(14 years ago)
5.0.9514 Dec 2011
(14 years ago)
5.0.9410 May 2011
(15 years ago)
5.0.9307 Apr 2011
(15 years ago)
5.0.9207 Jan 2011
(15 years ago)
5.0.9105 May 2010
(16 years ago)
5.0.9014 Jan 2010
(16 years ago)
5.0.8804 Nov 2009
(16 years ago)
5.0.8714 Oct 2009
(16 years ago)
5.0.8609 Sep 2009
(16 years ago)
5.0.8510 Aug 2009
(17 years ago)
5.0.8407 Jul 2009
(17 years ago)
5.0.8328 May 2009
(17 years ago)
5.0.8220 May 2009
(17 years ago)
5.0.8001 May 2009
(17 years ago)
5.0.8101 May 2009
(17 years ago)
5.0.7909 Mar 2009
(17 years ago)
5.0.7806 Feb 2009
(17 years ago)
5.0.7728 Jan 2009
(17 years ago)
5.0.7605 Jan 2009
(17 years ago)
5.0.7517 Dec 2008
(17 years ago)
5.0.7403 Dec 2008
(17 years ago)
5.0.7224 Oct 2008
(17 years ago)
5.0.7027 Sep 2008
(17 years ago)
5.0.6813 Aug 2008
(18 years ago)
5.0.6704 Aug 2008
(18 years ago)
5.0.6609 Jul 2008
(18 years ago)
5.0.6410 Jun 2008
(18 years ago)
5.0.6214 May 2008
(18 years ago)
5.0.6028 Apr 2008
(18 years ago)
5.0.5805 Mar 2008
(18 years ago)
5.0.5606 Feb 2008
(18 years ago)
5.0.5414 Dec 2007
(18 years ago)
5.0.5230 Nov 2007
(18 years ago)
5.0.5115 Nov 2007
(18 years ago)
5.0.5019 Oct 2007
(18 years ago)
5.0.4828 Aug 2007
(19 years ago)
5.0.4619 Jul 2007
(19 years ago)
5.0.4503 Jul 2007
(19 years ago)
5.0.4421 Jun 2007
(19 years ago)
5.0.4214 May 2007
(19 years ago)
5.0.4107 May 2007
(19 years ago)
5.0.4020 Apr 2007
(19 years ago)
5.0.3820 Mar 2007
(19 years ago)
5.0.3705 Mar 2007
(19 years ago)
5.0.3614 Feb 2007
(19 years ago)
5.0.3417 Jan 2007
(19 years ago)
5.0.3309 Jan 2007
(19 years ago)
5.0.3220 Dec 2006
(19 years ago)
5.0.3023 Nov 2006
(19 years ago)
5.0.2824 Oct 2006
(19 years ago)
5.0.2720 Oct 2006
(19 years ago)
5.0.2603 Oct 2006
(19 years ago)
5.0.2514 Sep 2006
(19 years ago)
5.0.2427 Jul 2006
(20 years ago)
5.0.2304 Jul 2006
(20 years ago)
5.0.2224 May 2006
(20 years ago)
5.0.2126 Apr 2006
(20 years ago)
5.0.2031 Mar 2006
(20 years ago)
5.0.1904 Mar 2006
(20 years ago)
5.0.1828 Dec 2005
(20 years ago)
5.0.1714 Dec 2005
(20 years ago)
5.0.1614 Nov 2005
(20 years ago)
5.0.1519 Oct 2005
(20 years ago)
5.0.1404 Oct 2005
(20 years ago)
5.0.1322 Sep 2005
(20 years ago)
5.0.1226 Aug 2005
(21 years ago)
5.0.1106 Aug 2005
(21 years ago)
5.0.1022 Jul 2005
(21 years ago)
5.0.908 Jul 2005
(21 years ago)
5.0.824 Jun 2005
(21 years ago)
5.0.710 Jun 2005
(21 years ago)
5.0.626 May 2005
(21 years ago)
5.0.527 Apr 2005
(21 years ago)
5.0.416 Apr 2005
(21 years ago)
5.0.322 Mar 2005
(21 years ago)
5.0.230 Nov 2004
(21 years ago)
5.0.126 Jul 2004
(22 years ago)
5.0.022 Dec 2003
(22 years ago)