These pages require JavaScript.

Get It Done With MySQL 5&Up

by Peter Brawley and Arthur Fuller

Ebooks weigh nothing, they cost less than printed books, they simplify your life, they can be updated, and they kill no trees. Give your excellent brain a treat with ...

... readable accounts of how to be productive with all MySQL releases since 2005, from 5.0.0 right up to the version 5.7 general release with its newly implemented derived columns and JSON capabilities,

... up-to-date accounts of new MySQL features,

... clear descriptions of MySQL installation, configuration, data types, storage engines, syntax, privilege management, query building, stored routines, administrative utilities, and security,

... step-by-step chapters to get you started using MySQL with ODBC, Perl, PHP, Java, Visual Studio including the new free Community Edition, and C/C++,

... a concise account of how to use the high-performance INNODB engine, so you can configure it and fire it up without having to wade through its very long documentation,

... enjoyable chapters on database theory, how to design a database, and the database application life cycle,

... in-depth treatments of trees and other hierarchies, point-in-time architecture, and MySQL with Visual Studio

... lookup cheat sheets for MySQL configuration variables and information_schema,

... a history of MySQL from its inception through its successive purchases by Sun and Oracle,

... coverage of the new release candidate of MySQL 8, 8.0.3-rc.

Treat yourself to an updating ebook edition for your laptop or tablet. If you need the print edition, you'll still get the updating ebook.

Why MySQL?

How many relational database management systems are robust and full-featured enough to bet your enterprise on? A half-dozen? How many of them can you download for full and free use on Windows, *Nix, a Mac, Solaris, or IBM AIX or i5? One: MySQL Community Edition.

Before MySQL 4.1, some scoffed at the product. No subqueries, no stored procedures, no views, no triggers. Forget that.

Version 4.1 brought in subqueries. 5.0 brought stored procedures and functions, views, triggers, XA transactions, a cluster engine, and information schema. MySQL 5.1 added an Event Scheduler. 5.5 added error message handling, proxy logins, XML processing and semisynchronous replication. 5.6 added crash-safe binary logs; partition options in SQL commands, delayed replication, and (finally!) better LIMIT optimisation. 5.0 has been retired. There are stable 5.1, 5.5 and 5.6 production releases. Most web hosting providers support 5.5 or 5.6. If Oracle's ambivalence toward open source worries you, Monty Widenius's MariaDB has drop-in-compatible versions of MySQL 5.5 and 5.6.

Of all available open-source databases available for free, MySQL has the richest set of database management tools. Routine MySQL queries typically return results in less than 0.05 seconds. Well-designed databases up to 1.5 terabytes perform well without custom tweaks like sharding. The relational InnoDB storage engine is robust. So is the server overall: Google engineer Jeremy Cole found a Twitter MySQL installation that had been running 212 days without downtime, over which time it had processed an average of about seven queries per second, returning about 1.36 million data rows per second. Replication is straightworward.

From 2000 to 2005, MySQL matured from a small-footprint database system aimed at web developers, to a full-featured, sophisticated, standards-based, ever-improving RDBMS. Free for your customers to use too, so long as you don't distribute your databases with proprietary code.

Each chapter saves you time ...

... with efficient design ideas, quick info lookups, examples you can put to work.

The first time the SQL Command Syntax chapter saves you 20-30 minutes looking for a bit of syntax you forgot or never knew, the book pays for itself.

The first time an API chapter saves you 20-30 minutes with a clear explanation of how to do something in C or Perl or PHP or Java or .NET or ODBC, the book pays for itself again, perhaps several times over.

The first time the Configuration Variables Appendix saves you 20-30 minutes searching for info on one of the more than 500 MySQL configuration settings, the book pays for itself yet again.

The first time you copy the VirtualMode DataGridView from Chapter 22 straight into a .NET app of yours, the book pays for itself about twenty times over. Ditto for the first time you crib a tree traversal routine from Chapter 20, or a point-in-time design from Chapter 21.

Do yourself a favour, buy it now:

Keep yourself up to date

Dead-tree publishing gives you a 500-1000 page tome. It's months or years old. Maybe 200 pages are relevant to you. Some are out of date by the time you read them. So you lug home this two-kilogram object, read the pages of interest, curse the out-of-dateness, and ignore the rest.

Trees died, trucks lugged heavy pallets of books to bookstores, more CO2 made your summer hotter, and you weren't all that satisfied.

It's time to give that 19th century idea of publishing a rest. Some chapters of this book are free. You can purchase the whole book as an inexpensive weightless download, with an optional five-year subscription for updates. Why isn't it on a Kindle or an iPad? We want you, not Amazon or Apple, to own your copy, and we want you to update it as often as you like.

And if you want the nicely printed and bound physical book, our printing is on-demand so your book was printed a few days ago instead of a few years ago, and you still get the electronic edition and updates too.
Current editions Community editions of MySQL are free to download and free to use with no limits. Available versions are 5.0, which has been archived but can still be downloaded; 5.1, 5.5 and 5.6, all generally available releases; and 5.7, now in gwneral release.

5.0 went into production in autumn 2005. Get It Done covers all 5.0 releases.

The 5.1 series has been in production since autumn 2008. Upgrades with third-party plugin database engines have appeared. Get It Done covers all 5.1 releases.

Early in 2009 MySQL introduced the 5.4-5.5-5.6 release series. 5.4 was soon replaced by 5.5. New features include scalability improvements, a new INNODB engine, proxy logins, and features backported from the 6.0 series including SIGNAL and RESIGNAL error messaging. It has been stable and in production since December 2010.

5.6, now in production, adds crash-safe binary logs; SQL partition support; UUIDs for each server instance; delayed and multi-thread replication; row image control in replication; performance_schema enhancements; better optimisation of JOIN, WHERE and LIMIT clauses; better information_schema InnoDB metadata; microsecond support in columns that store time; and much needed, much improved error info retrieval with the new GET DIAGNOSTICS command.

5.7 appeared as a development release in April 2013, and went into general release in late 2015. It offers improved security, logging and Triggers; it supports subqueries in Views, JSON columns and indexable derived columns in tables; and fixes many 5.5 and 5.6 bugs.

8.0 appeared as development release 8.0.0 in September 2016. Now there is a release candidate, version 8.0.3-rc. It improves InnoDB, and moves system tables and the global data dictionary to it; revises partitioning; adds persistent global variables; adds binary strings to bit function scope; improves query parsing and index use; and adds component-based infrastructure, SQL roles, a utf8mbr collation. Recursion-capable Common Table Expressions are implemented (they're already in MariaDB 10.2.2); Chapter 20 of Get It Done has examples. There is also support for OVER() and Windowing/Analytic functions.

For some time, the MySQL development team had referred to the next major release after 5.7 as 5.8. The release of 8.0 confirms that there'll not be another MySQL 6.0, so we've updated the name of Get It Done to Get It Done With MySQL 5&Up.

Get It Done covers all 5.0, 5.1, 5.4, 5.5, 5.6, 5.7, 8.0 releases, also features from the abandoned version 6.0 that haven't yet been ported to currently active MySQL releases.

We've also put up links to the MySQL Server Developmnt Team's development notes on new featuress in 8.0 under "Version Notes" on our Tips page.
Reviews, feedback "Timely, relevant, and correct ... also well organized and quite complete" -- Baron Schwartz

"This is, without a doubt, the best of all the books on MySQL I've found." -- Phil Mickelson

"Excellent book." -- Michael K. Peterson

"Looks like the book to get if you are a MySQL programmer." -- Jim Lawrence

"A complete MySQL resource." -- Diego Medina

"Your website "Get it Done with MySQL 5&Up" is simply awesome and thank you again." -- Balaji Thiayagarajan

"*Splutter*, *gasp*--YES! How the heck did you do that? It worked like a charm first try. Wonderful, sir--you just tell me where to send the baked ham, and it's yours." -- Max Loeb
Advanced Topics Working with Graphs in MySQL shows how to implement edge list, nested sets, and hybrid models of hierarchies like family trees, plane routes and parts explosions. There are more than 40 working queries and routines, including a PHP function that renders any tree graphically using the new Google Visualization API.

Who Knows Where The Time Goes? is a full account of how to implement time validity and point-in-time architecture using MySQL 5, with 70 working SQL scripts.

Visual Studio and MySQL is an 80-page walkthrough with analysis, explanation and source code for two perfectly general and complete standalone .NET versions of a Windows database-enabled application, one for MySQL databases, one for SQL Server databases. Runtime ComboBox selection of database and tables, master-detail grids, just-in-time on-the-fly DataGridView lookup browse windows, general-purpose Find dialogs, a ListView lookup browser, and more.
Buy It Now! Click here to buy your copy of Get It Done With MySQL 5&Up. Buy the ebook with updates and get free updates for five years. Buy the print edition to get a handsome book, plus the ebook, plus five years of updates. Buy the ebook by itself and get a month of free updates.

Try it! Browse the sample chapters from the links down the left side of this page.

For more samples of our take on MySQL, see the Common Queries and MySQL Tips pages.
TheUsual A free, fast, user-friendly web browser interface, written in PHP, for all your MySQL databases on all your servers, whether you own the servers your databases are on, rent them, or share hosting services. Supports automatic queries, ad hoc and saved queries, automatic master-detail browsing, pagination and sorting, add/edit/copy/delete table maintenance, stored routine creation & maintenance, database maintenance & backup, and on-the-fly Area, Motion, Org/Tree, Pie and Scatter graphical charts.
Common queries Our collection of common MySQL queries soon outgrew Chapter 9. It runs now to more than 120 printed pages, and it is still growing, so we turned it into a PHP page driven by a pair of MySQL tables implementing an edge list tree model (for how to use edge list and other tree models in MySQL, see Chapter 20 of the book). Click here for the Common Queries page, and here for a panelled tree view of the same material.
Contact Us ©2005-2016 Artful Software Development