Product Details
The Definitive Guide to MySQL 5, Third Edition

The Definitive Guide to MySQL 5, Third Edition
By Michael Kofler

List Price: $49.99
Price: $31.49 & eligible for FREE Super Saver Shipping on orders over $25. Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

43 new or used available from $3.96

Average customer review:

Product Description

"For those with a need to know, and those with a desire to learn MySQL, this volume contains nearly everything you would want and expect, not only about MySQL itself but about the software that interacts with it or web servers." — John Suda, Slashdot Contributor

"I've seen the 2nd edition (of) this book and it's good stuff." — Arjen Lentz, MySQL Community Journal MySQL 5 is slated to be the most significant release in the product’s history. The Definitive Guide to MySQL 5, Third Edition, is the newest revision of Michael Kofler’s popular book. This is the first book to offer in-depth instruction about the new features of the world’s most popular open source database server. Updated to reflect changes in MySQL version 5, this book will expose you to MySQL’s impressive array of new features: views, stored procedures, triggers, and spatial data types. Whether you’re a novice or intermediate user, you will benefit from extensive coverage of core MySQL features like user administration, basic and advanced querying, and security. You will also be introduced to several standard and third-party tools, like MySQL Administrator, Query Browser, and the popular PHPMyAdmin tool.


Product Details

  • Amazon Sales Rank: #606895 in Books
  • Published on: 2005-09-23
  • Original language: English
  • Number of items: 1
  • Binding: Paperback
  • 784 pages

Editorial Reviews

About the Author
Michael Kofler

Michael Kofler holds a Ph.D. in computer science from Graz Technical University. He has written a number of successful computer books on topics such as Visual Basic, Visual Basic .NET, and Linux. Michael is the author of The Definitive Guide to MySQL 5, Third Edition and Definitive Guide to Excel VBA, Second Edition from Apress.


Customer Reviews

Not what I expected or needed, unfortunately3
I read and reviewed MySQL Press' MySQL Tutorial by Luke Welling and Laura Thomson two years ago. I thought Tutorial was a great, concise (267 pages including index) MySQL overview. I hoped The Definitive Guide to MySQL 5, 3rd Ed (DG, 748 pages) would extend my understanding of MySQL beyond the coverage in the Tutorial. Unfortunately, I found the Tutorial did a better job addressing important information than the DG. While there is some good information in the DG, I recommend staying with books published by MySQL Press.

The biggest problem with the DG stems from this statement on p xxvii: "No previous knowledge of SQL or database design is assumed." The first seven chapters, however, frequently direct confused newbies to chapters 8-10, where database design and SQL syntax is introduced. An author who recognizes that he is losing readers should take a hard look at the organization of his book.

DG is also far from a "definitive guide." I wanted to learn more about JOIN statements, but only 3 confusing pages (pp 197-9) cover JOINS -- compared to 7 in the much shorter Tutorial. Worse, here is how the author "introduces" the LEFT JOIN and ON statements: "One variant consists in creating a table list with LEFT JOIN and then forming the linking connection with ON." How is anyone (especially newbies) supposed to consider that informative?

I was also interested in learning about MERGE tables, since I use them in an open source project. DG has nothing to say on the subject, although the Tutorial gives at least 2 pages. The DG also makes the unfortunate decision to omit the semicolon from the end of all MySQL commands. Sure, they may not be in the SQL standard, but every single other MySQL book I've seen uses them. That is especially important for new MySQL users.

The DG also spent far too much time on areas I felt were best addressed elsewhere. I really don't care to learn how to install Apache, PHP, and Perl on various platforms. I also didn't need to read so much about integration with PHP. Other books with MySQL and PHP in the title are the right place to discuss that subject. I admit I skipped reading Part IV, on programming interfaces, along with ch 12 (GIS) and the SQL and API references (ch 21, 23).

On the positive side, I had not read anything on stored procedures or triggers before (ch 13). I also picked up some tricks on security and logging from chs 11 and 14. I learned of some new administration tools in ch 5. I still wish the author had spent more time addressing SQL syntax and explaining what it meant, and less on peripheral issues. Performance and tuning are two subjects outside of core SQL syntax that should be in the book but are not discussed thoroughly. I should note that I thought the translator for DG did a great job. I didn't notice any real rough spots that may have been the result of poor translation.

If the fourth edition of the DG receives a major overhaul, you might consider buying it. I am astounded by the number of positive reviews for this and previous editions, since I believe the DG does not address enough of the subjects that really matter to MySQL administrators.

Apress does publish many outstanding books, such as Running IPv6 or several titles on Python. I recommend checking out those works.

Please save your money - I wish I had1
First a bit about me: I MySQL 4 certified both core and professional. I have 2.5 years production experience with MySQL and 6 years with databases in general.

I bought this book based on the table of contents thinking I would get a good read on the differences between versions 4 and 5. Then I would begin my journey towards certification.

While this book may be good at telling me about 5, I have found so many factual errors in the first 200 pages that I am going to set it aside for fear that I will be mislead on topics that are new to me.

Here are some examples:
- The author says it is possible to drop a table where foreign key constraints are in place. This is false. The server will return an error and InnoDB status will provide detail.
- The author states that the location of orphan records in a child table can be done by a simple subselect. While this is true, in any table larger than a few thousand rows the query will take forever. This should be done with an outer join.
- The author states (pg 153) that MySQL is case-sensitive in regard to database and table names. This is true in operating systems that are case sensitive (Linux, OS X, Unix) but not Windows. While it may not seem like a big deal, a DB using InnoDB tables will not port from Linux to Windows if varied case is used in these names.
-On page 8 the author states that use of MyISAM tables precludes hot backups. MySQL has shipped with mysqlhotcopy since version 3.23 (Note InnoDB does require the purchase of InnoDB Hotbackup)
-On the same page the author states that MySQL is unsuitable for OLAP applications. Again this is false. MyISAM tables provide a number of very powerful features that support data warehousing. MySQL has even partnered with Business Objects on just this type of system.

Given these and many other details, it appears to me that this book was written by someone who uses MySQL is one specific way, thus it defines their experience with the system.

I strongly recommend against this book.

Definitely a definitive guide4


"The Definitive Guide to MySQL5 3rd Edition" certainly deserves its title. It is a large, dense, complete guide to MySQL and updates its predecessor edition by covering new MySQL5 and new auxiliary software including database administration tools and interfaces. MySQL is the open-source database software which has become very popular for web-based database applications now being used by Yahoo, NASA, Slashdot, and other entities.

The author of this book, Michael Kofler, has a Ph.D. degree in computer science and is an accomplished writer of technical books. The audience is intermediate to high-level database designers and programmers. Although the presentation assumes little prior knowledge of MySQL and databases, it does assume a good amount of contact with and knowledge of programming languages. The topic of this book does not lend itself to an easy, flowing writing style. Reading through this complex material is like chewing on heavy New England pound cake. That is not a criticism of the author as he thoroughly presents the topics in a comprehensive, workmanlike, textbook-like manner. The discussions of databases and MySQL features are lightened by numerous table, charts, graphics, and examples of relevant matters.

The updating from the 2nd Edition of "The Definitive Guide" involves the upgrade of MySQL from version 4.1 to 5.0 which now provides support for Unicode, the sub-SELECT and GIS functions, improved authorization features, addition of stored procedures, and other new commands and server options. It also includes discussion of new or updated auxiliary software used with MySQL, like PHPAdmin and new interfaces for Open Office, Star Office, and Apo.NET.

There are six parts with twenty-three chapters and 3 appendices, amounting to 748 pages with index. The parts entail an introduction to MySQL and databases, administrative tools and user interfaces, fundamentals of database design, programming using MySQL, and detailed content references. The appendices include short segments of a glossary, bibliography, and notes about the sample code files available for downloading from the publisher's website at www.apress.com.

The beginning chapters introduce the basic concepts of MySQL including its client-server architecture, tables, fields, queries, keys, and the distinction between relational and object-oriented databases. The author focuses the bulk of the book on relational databases. The many features of MySQL are itemized and other matters like licensing and setting up test environments are discussed. A large segment of this early material offers instruction on installing under Windows and Unix/Linux platforms and configuring the installations for function, usability, and security. An introductory example of building an opinion poll application with PHP is provided.

Chapters 4 - 6 cover a number of administrative tools to use with MySQL, including mysqladmin, mysqldump, and PHPAdmin. The author spells out how to install and configure, set up user management and security, create and edit databases, import and export data, and use auxiliary functions, among other things.

The best chapter, in my view, is Chapter 8 on database design. The technical aspects of databases are well-covered, like the various table types and data types, but the more theoretical aspects are noted in some length. There is some art in creating databases and tables which is above the technological. Correct design with related tables is crucial to efficiency, ease of use, accuracy, ability to revise, and consistency. A segment on "tips and tricks" in database design is especially interesting.

The bulk of Part 3 contains a comprehensive presentation of SQL features, syntax, configuration, and security issues, The new functions of version 5 are explored, like GIS and stored procedures and triggers. A section on transactions for advanced users and setups is nicely done. For novice users, mention is made of the "...I-am-a-dummy" option which warns and provides a second chance to avoid inadvertent updating or deleting of a table. Chapter 14 is all about maintenance issues - backing up, importing, logging, and replication.

Part 4 deals with how to combine MySQL with programming languages like PHP, perl, Java, C, Visual Basic, and Visual Basic.NET. Each is treated similarly - detailing features, concepts, syntax, and programming techniques. Most of the attention is given to PHP, which is described as a natural companion to MySQL for use in developing dynamic web applications.

Chapter 21 is a comprehensive SQL reference of operations, functions, data types, variables and constants, and commands. There are a large number of charts and tables to bring order to the dense material. Chapter 23 contains material on the various API's which can interact with MySQL. These include PHP.API, perl.API, JDBC, ADO-net, and C.API.

For those with a need to know, and those with a desire to learn MySQL, this volume contains nearly everything you would want and expect, not only about MySQL itself but about the software that interacts with it or web servers. The author deserves credit for presenting the dense material in a thorough and orderly manner.