Join 6500 others and follow Sean Hull on twitter @hullsean.
I just received my copy of the 5th Edition of Paul DuBois’ MySQL tomb. Weighing in at 1153 pages, it’s a solid text, with a very thorough introduction to the topic of administering MySQL databases.
Buy the book here: MySQL 5th Edition by Paul Dubois
A book for a broad audience
When I say debutantes, it’s a nod to beginners, for this book forges a very solid and complete introduction to the topic of MySQL. Start with installing the software & setting up your environment, and then move on to really understanding the SQL language, from commands to create objects, to ones for adding & modifying data, and then writing code around it.
See also: 5 more things deadly to Scalability
There’s a thorough discussion of datatypes, stored procedures, functions and views.
Paul Dubois’ definitive reference makes a excellent compliment to High Performance MySQL. They should sit alongside eachother on your database bookshelf.
For developers there are chapters on writing applications in C, another for Perl and a third for PHP.
For DBAs there are chapters on security, backups, replication, understanding the data directory and general server administration. There is also good coverage of both 5.5 and the newly released 5.6 of MySQL.
What I like about this book
You can think of this book as a definitive reference to MySQL. It includes much of the online documentation that you would find at Oracle’s site, such as command & variable reference, and detailed explanation of how to use the client tools.
Dubois also goes beyond the online documentation though, giving you a bit of a background around concepts, a broader more complete discussion.
He also lays out the material in a very logical stepwise way, so for someone new to the MySQL world and the time on their hands, the 1153 pages could be read straight through.
Why No Mention of Percona Toolkit?
I have to admit I was a bit surprised there was no mention of Percona Toolkit. Perhaps it was buried in some dark corner of the text I missed, but it made no mention in the index at all.
Percona Toolkit of course is a tool that every DBA should be familiar with. It is really an essential toolkit and fills the gaps that the prepackaged tools can’t help you with.
Want to checksum your tables to compare data on master & slave? pt-table-checksum does the trick.
Want to find out how far your slaves *really* are behind? pt-heartbeat is your friend.
Want to analyze your slow query log to produce a useful summary report? pt-query-digest to the rescue.
I also see no mention of innotop, which I would also say is an essential tool. These aren’t really advanced topics, so It’s unclear why they are missing. In the real world you need these tools to do your job.
My more general criticism is where the book lacks real-world advice from a seasoned DBA. At times the writing feels a bit more of the official line on how things work. But in day-to-day devops and operations, things can be quite different.
For example, stored procedures. In MySQL they are there, however using them brings real performance challenges. They’re not always compatible with replication. Given all of that, why include a whole chapter with endless discussion of them without strong reservations. It would lead a novice user or developer to incorporate them into an application only to be shocked and surprised at the problems they bring.
Another example, looking through the system variables reference, I see the sync_binlog option. There is a short caution “…lower values provide greater safety in the event of a crash, but also affect performance more adversely”. Now reading this as a novice DBA I might think great, crash protection. But having tried this parameter in production, I found a huge impact on performance and had to disable it. What’s the advice here? It’s a bit confusing.
This is a really great book as an introduction to MySQL, and delving into intermediate topics. I would sit it on your bookshelf along side High Performance MySQL. What this book lacks in advice, you can turn to the latter book, and what High Performance MySQL lacks in terms of introductory material this book covers in spades. They make a great compliment to each other.