Tél: 01 70 61 48 95
Tél: +33 1 70 61 48 95 (de l'étranger)
USA/Canada Subscription Renewals: +1-866-221-0634
Like many people I learned to use MySQL while developing database-backed web applications using the excellent MySQL reference documentation, O'Reilly "LAMP" books, and, of course, Google. Judging from the questions on the MySQL User mailing list many are still learning MySQL as they go. To date MySQL documentation has been thorough, available and plentiful. However most documentation is either in reference form, assumes familiarity with the basics, or is combined with another technology such as Perl or PHP. With the release of the MySQL Tutorial there is now a comprehensive introduction to MySQL that is suitable for beginners and old hands needing to fill in the gaps, correct assumptions, or prepare to switch to version 4.1 (which is the release covered in the book). As such, this book bills itself as a "tutorial for smart people" (p. 5). Indeed, the excellent mix of explanation, practical examples and review questions will be appreciated by those wanting to get a firm foundation of understanding with MySQL.
I admit to sheepishly adding "MySQL Tutorial" to my purchase of "High Performance MySQL" (by Zawodny and Balling through O'Reilly) while attending the MySQL Users' Conference in Orlando, FL. Standing in a room full of MySQL experts and advanced users and having made my living as a MySQL user for several years, I was, honestly, a bit embarrassed to buy an introductory tutorial, but a quick scan of the contents convinced me of my need for this book. First, as a self-taught MySQL-using web application developer I knew I had gaps in my knowledge of MySQL; for example, settings in /etc/my.cnf that I gleaned off the Internet but could not explain authoritatively why they were set thusly. Second, when we add a new team member to a project I want to be sure we begin on the same page. Having a step-by-step, practical guide to cover the foundation would help save time due to misunderstandings or having to re-work solutions -- or worse!
MySQL Tutorial is well laid out for its purpose. With only this book and access to a few resources on the Internet referred to by the authors, a person could start using MySQL almost immediately. By the end of the book this person could be useful on your next database-backed project. The "Contents at a Glance" page shows the progression:
Part I: MySQL Basics
1. Installing MySQL
2. Quick Tour
Part II: Designing and Creating Databases with MySQL
3. Database Design Crash Course
4. Creating Databases, Tables, and Indexes
Part III. Using MySQL
5. Inserting, Deleting, and Updating Data
6. Querying MySQL
7. Advanced Queries
8. Using MySQL Built-in Functions with SELECT
Part IV: MySQL Table Types and Transactions
9. Understanding Transactions with InnoDB Tables
10. Using Transactions with InnoDB Tables
Part V: Administering MySQL
11. Managing User Privileges
12. Configuring MySQL
13. Administering Your Database
14. Backup and Disaster Recovery
15. Securing Your MySQL Installation
16. Replicating Your Database
Part VI: Optimizing MySQL
17. Optimizing Your MySQL Server Configuration
18. Optimizing Your Database
19. Optimizing Your Queries
Each chapter begins with explanation of that chapter's subject. Intermixed with the explanation are "follow-along" examples to firmly fix the lesson in the reader's mind. Quizzes and (usually) exercises conclude each chapter to reinforce the key concepts presented. The material at the beginning may seem too rudimentary for the expert MySQL user but a little review of Third Normal Form never hurt anyone. I must commend the authors for beginning with InnoDB table types (storage engines) from the very first CREATE TABLE example. Most people use MyISAM by default; this book seeks to reset that default at least in its readers.
Toward the end of the book are the more advanced features, such as transactions, replication, privileges, disaster recovery and optimization. These subjects are also covered in the more advanced book I mentioned at the start of the review, "High Performance MySQL," and I was interested how this introductory tutorial would handle these topics. As expected, the advanced subjects are introduced but not thoroughly discussed. For example, Chapter 16's introduction of replication will have the reader running a single Master-Slave combination; the section on Advanced Topologies introduces the concepts of cascading masters and circular masters but provides no step-by-step example. Such is fitting for an introductory tutorial, however, as too much detail would prove daunting; MySQL Tutorial achieves its goal of familiarizing the reader with the foundations of MySQL knowledge while introducing advanced concepts (and whetting the appetite of the reader to go on in her studies).
One disappointment, and one that exposes my laziness, was my inability to find the book's website with the example code available for download as mentioned in the book (p. 44). Perhaps the website is still under development or there was a change in plans. Regardless, it would be nice to have a resource site for MySQL Tutorial readers to turn to even if that site merely pointed them to the other excellent references available on-line. The side benefit to not finding the site was having to type the examples in myself which I would prefer new members of my team to do anyway. Physically working on the examples and exercises seems to strengthen the material learned (which is why the best teachers require and the best students do homework, undoubtedly).
Overall MySQL Tutorial has earned a spot on my bookshelf and on the required reading list for my development teammates. If you want to understand MySQL thoroughly, begin with this book. The theory you learn and put into practice will be useful at every stage of MySQL development. If you are also a LAMP'er that has learned MySQL on the job, and are wary of being seen with an "introductory" MySQL book, get it "for a friend." Then, do the smart thing and read it yourself. Perhaps you, like me, will be surprised to learn what you didn't already know. Perhaps it should be called the "tutorial for people who want to be smart." It's a start in the right direction.
See other reviews

