|summary||There's something for everyone -- user, developer, administrator -- in Paul DuBois' excellent MySQL book.|
The ScoopPaul DuBois has gone beyond the technically comprehensive MySQL documentation to produce an informative and entertaining compendium of MySQL knowledge. Requiring little prior experience ("What is a database and why should I care?"), he explains general SQL and RDBMSs as well as the peculiarities of MySQL.
What's to Like?The prose is clear and readable. At the start, DuBois walks the reader through designing two very different database projects. After the first chapter, a normal user will be proficient at manipulating the client and issuing basic commands -- even designing her own tables. From there, the rest of the MySQL world opens up as more detail emerges. The sections on optimizing queries and table indexes will prove particularly valuable as the database grows from a hobby into a valuable project of its own.
Almost anyone working with MySQL will find appropriate information, no matter his approach. While the standard client receives ample attention, Perl and PHP Web interfaces are developed and explained in later chapters. After explaining the general ideas of the particular interface, DuBois walks through the design and evolution of programs to fill specific tasks. These programs start with basic functionality and gradually add more features until the original goal is met.
Though the book explicitly covers stable version 3.22 and development version 3.23, features introduced in newer versions are marked and features on the roadmap are mentioned. Deprecated functions and replacements are labeled, too. As well, the section on "missing features" is useful, giving suggested workarounds, when present. (Examples include subselects and transactions.) ANSI SQL receives plenty of attention -- even where the MySQL implementation strays. It's an honest approach.
DB administrators aren't left out -- a full section is dedicated to their own issues. Security and permissions receive due treatment, as does performance tuning. The section on maintenance and database relocation was particularly interesting. There's even a treatise on the structure of the database files (notable for the differences between the ISAM and MyISAM formats).
Finally, the included appendices are well-selected. Weighing in at slightly less than a third of the pages, this tome will not have time to gather dust on my bookshelf. Most pertain to programmers, but having a physical guide to the built-in MySQL functions has a certain appeal.
What's to Consider?While filed with useful information and clear examples, the Perl chapter had a distinctive C flavor to it. As the corresponding C chapter assumes familiarity with that language and the PHP discussion starts with an introduction to PHP, the author assumedly addresses potential MySQL programmers in three categories: C programmers, Perl dabblers, and PHP initiates. While this likely reflects the makeup of his intended audience, it may also prove distracting to more experienced users. (Suggestion for these folks: read the example code and skip to the API appendix.)
A minor nitpick is the binding and cover of the book. My review copy managed to attract lots of dirt on the nice cover, and it developed a serious crack in the spine, in the middle of the Perl DBI chapter. Some of the affected pages are coming loose, after moderate usage. Hopefully this is just a defect in my copy.
Be aware that much of the example prose has a touch of free-Unix to it. Nearly all options will work on the Windows platform, but users unaccustomed to extended command line forays may feel uncomfortable. (Since this also applies to the database, it's barely worth mentioning.)
The SummaryMySQL is an excellent book, with a good balance of database introduction, believably practical examples, and technical information. Want to program, set up, or administer a MySQL system? You won't go wrong here.
Purchase the book at ThinkGeek.
Table of Contents
- General MySQL Use
- Introduction to MySQL and SQL
- Working with Data in MySQL
- MySQL SQL Syntax and Use
- Query Optimization
- Using MySQL Programming Interfaces
- Introduction to MySQL Programming
- The MySQL C API
- The Perl DBI API
- The PHP API
- MySQL Administration
- Introduction to MySQL Administration
- The MySQL Data Directory
- General MySQL Administration
- Database Maintenance and Repair
- Obtaining and Installing Software
- Column Type Reference
- Operator and Function Reference
- SQL Syntax Reference
- MySQL Program Reference
- C API Reference
- Perl DBI API Reference
- PHP API Reference
- Useful Third-Party Tools
- Internet Service Providers